LGSLargeScreenRepository.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Ropin.Inspection.Model.Entities;
  2. using Ropin.Inspection.Model.SearchModel.LGS;
  3. using Ropin.Inspection.Model.ViewModel.LGS;
  4. using Ropin.Inspection.Repository.LGS.Interface;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Ropin.Inspection.Repository.LGS
  11. {
  12. public class LGSLargeScreenRepository : RepositoryBase<TLGS_LargeScreen, string>, ILGSLargeScreenRepository
  13. {
  14. public LGSLargeScreenRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<IEnumerable<LargeScreenViewModel>> GetConditionAsync(LargeScreenSearch searchModel)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] {
  20. new MySqlConnector.MySqlParameter("Status", searchModel?.C_Status),
  21. new MySqlConnector.MySqlParameter("name", "%"+searchModel?.C_Name+"%"),
  22. new MySqlConnector.MySqlParameter("StoreCode", searchModel?.C_StoreCode),
  23. new MySqlConnector.MySqlParameter("Id ", searchModel?.C_ID)
  24. };
  25. StringBuilder sql = new StringBuilder();
  26. sql.Append(@"select * from (
  27. select l.*,s.C_Name as C_StoreName
  28. from TLGS_LargeScreen l
  29. LEFT JOIN TPNT_Store s on (l.C_StoreCode=s.C_Code)
  30. ) tab where 1=1");
  31. if (!string.IsNullOrEmpty(searchModel.C_Status))
  32. {
  33. sql.Append(" and C_Status=@Status ");
  34. }
  35. if (!string.IsNullOrEmpty(searchModel.C_Name))
  36. {
  37. sql.Append(" and C_Name like @name");
  38. }
  39. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  40. {
  41. sql.Append(" and C_StoreCode=@StoreCode ");
  42. }
  43. if (!string.IsNullOrEmpty(searchModel.C_ID))
  44. {
  45. sql.Append(" and C_ID=@Id ");
  46. }
  47. sql.Append(" order by D_CreateOn desc ");
  48. IEnumerable<LargeScreenViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<LargeScreenViewModel>(DbContext.Database, sql.ToString(), parameters);
  49. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  50. if (recordItemlist.Count() == 1 && recordItemlist.First() == null)
  51. {
  52. recordItemlist = null;
  53. }
  54. return Task.FromResult(searchModel.IsPagination ? recordItemlist?.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  55. }
  56. }
  57. }