public async Task <IActionResult> Search([FromQuery] PaginationParams param, AuditTypeDParam auditTypeDParam) { var lists = await _auditTypeDService.SearchAuditTypeD(param, auditTypeDParam); Response.AddPagination(lists.CurrentPage, lists.PageSize, lists.TotalCount, lists.TotalPages); return(Ok(lists)); }
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)); }