예제 #1
0
        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));
        }
예제 #2
0
        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));
        }