public async Task <PagedList <AuditType_D_Dto> > SearchByAuditType(PaginationParams param, string audit_Type1, string audit_Type2) { MES_Audit_Type_M auditTypeID = null; var lists = _repoAuditDType.FindAll().ProjectTo <AuditType_D_Dto>(_configMapper); if (audit_Type1 != "all") { if (audit_Type2 != null) { auditTypeID = await _repoAuditMType.FindAll().Where(x => x.Audit_Type1.Trim() == audit_Type1.Trim() && x.Audit_Type2.Trim() == audit_Type2).FirstOrDefaultAsync(); } else { auditTypeID = await _repoAuditMType.FindAll().Where(x => x.Audit_Type1.Trim() == audit_Type1.Trim()).FirstOrDefaultAsync(); } lists = _repoAuditDType.FindAll().ProjectTo <AuditType_D_Dto>(_configMapper).Where(x => x.Audit_Type_ID.Trim() == auditTypeID.Audit_Type_ID.Trim()).OrderByDescending(x => x.Updated_Time); } return(await PagedList <AuditType_D_Dto> .CreateAsync(lists, param.PageNumber, param.PageSize)); }
public async Task <PagedList <AuditType_D_Dto> > SearchAuditTypeD(PaginationParams param, AuditTypeDParam auditTypeDParam) { var query = _repoauditTypeD.FindAll(); MES_Audit_Type_M auditTypeID = new MES_Audit_Type_M(); if (!String.IsNullOrEmpty(auditTypeDParam.audit_Type_1)) { if (!String.IsNullOrEmpty(auditTypeDParam.audit_Type_2)) { auditTypeID = await _repoauditType.FindAll().Where(x => x.Audit_Type1.Trim() == auditTypeDParam.audit_Type_1.Trim() && x.Audit_Type2.Trim() == auditTypeDParam.audit_Type_2). OrderByDescending(x => x.Audit_Type_ID).FirstOrDefaultAsync(); } else { auditTypeID = await _repoauditType.FindAll().Where(x => x.Audit_Type1.Trim() == auditTypeDParam.audit_Type_1.Trim()).FirstOrDefaultAsync(); query = query.Where(x => x.Audit_Type_ID.Trim() == auditTypeID.Audit_Type_ID.Trim()); } query = query.Where(x => x.Audit_Type_ID.Trim() == auditTypeID.Audit_Type_ID.Trim()); } var result = await _repoauditType.FindAll().ToListAsync(); var data = ( from a in result select new { audit_type_ID = result.Where(y => y.Audit_Kind == a.Audit_Kind && y.Audit_Type1 == a.Audit_Type1 && y.Audit_Type2 == a.Audit_Type2 && y.Brand == a.Brand && y.Version == result.Where(x => x.Audit_Kind == a.Audit_Kind && x.Audit_Type1 == a.Audit_Type1 && x.Audit_Type2 == a.Audit_Type2 && x.Brand == a.Brand).OrderByDescending(x => x.Version).FirstOrDefault().Version).OrderByDescending(x => x.Audit_Type_ID).FirstOrDefault().Audit_Type_ID, }); var dataTest = data.Select(x => x.audit_type_ID).ToList(); query = query.Where(x => dataTest.Contains(x.Audit_Type_ID)); var lists = query.ProjectTo <AuditType_D_Dto>(_configMapper).OrderByDescending(x => x.Updated_Time); return(await PagedList <AuditType_D_Dto> .CreateAsync(lists, param.PageNumber, param.PageSize)); }