TdevWebScadaDevSpotRepository.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.SearchModel.LGS;
  4. using Ropin.Inspection.Model.ViewModel.LGS;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Linq.Expressions;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository
  12. {
  13. public class TdevWebScadaDevSpotRepository : RepositoryBase<TDEV_WebScadaDevSpot, string>, ITdevWebScadaDevSpotRepository
  14. {
  15. public TdevWebScadaDevSpotRepository(InspectionDbContext DbContext) : base(DbContext)
  16. {
  17. }
  18. public IEnumerable<TDEV_WebScadaDevSpot> GetByCondition(Expression<Func<TDEV_WebScadaDevSpot, bool>> expression)
  19. {
  20. return DbContext.Set<TDEV_WebScadaDevSpot>().Where(expression).AsEnumerable();
  21. }
  22. public Task<IEnumerable<TDEV_WebScadaDevSpotEndity>> GetConditionAsync(TdevWebScadaDevSpotSearchModel searchModel)
  23. {
  24. MySqlConnector.MySqlParameter[] parameters = new[] {
  25. new MySqlConnector.MySqlParameter("Status", searchModel?.C_Status),
  26. new MySqlConnector.MySqlParameter("name", "%"+searchModel?.C_Name+"%"),
  27. new MySqlConnector.MySqlParameter("devCode", searchModel.C_DevCode),
  28. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID)
  29. };
  30. StringBuilder sql = new StringBuilder();
  31. sql.Append(@"select * from (
  32. select w.*,b.C_ID as C_BoxID,b.C_Name as C_BoxName
  33. from TDEV_WebScadaDevSpot w
  34. LEFT JOIN TDEV_Box b on (w.C_BoxNo=b.C_BoxNo)
  35. ) tab where 1=1");
  36. if (!string.IsNullOrEmpty(searchModel.C_Status))
  37. {
  38. sql.Append(" and C_Status=@Status ");
  39. }
  40. if (!string.IsNullOrEmpty(searchModel.C_Name))
  41. {
  42. sql.Append(" and C_Name like @name");
  43. }
  44. if (!string.IsNullOrEmpty(searchModel.C_DevCode))
  45. {
  46. sql.Append(" and C_DevCode=@devCode ");
  47. }
  48. if (!string.IsNullOrEmpty(searchModel.C_ID))
  49. {
  50. sql.Append(" and C_ID=@Id ");
  51. }
  52. sql.Append(" order by I_Sort asc ");
  53. IEnumerable<TDEV_WebScadaDevSpotEndity> recordItemlist = EntityFrameworkCoreExtensions.GetList<TDEV_WebScadaDevSpotEndity>(DbContext.Database, sql.ToString(), parameters);
  54. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  55. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  56. {
  57. recordItemlist = null;
  58. }
  59. return Task.FromResult(searchModel.IsPagination ? recordItemlist?.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  60. }
  61. }
  62. }