public IEnumerable <PoliciesMotor> GetPolicies(PolicyRequestDto req) { Expression <Func <PoliciesMotor, bool> > predicate = c => true; if (!string.IsNullOrEmpty(req.ClientName)) { predicate = predicate.And(p => p.Client.FirstName.Contains(req.ClientName) || p.Client.FirstNameAr.Contains(req.ClientName)); } if (!string.IsNullOrEmpty(req.PolicyRequestRefId)) { predicate = predicate.And(p => p.PolicyRequestRefId == req.PolicyRequestRefId); } if (!string.IsNullOrEmpty(req.QuotationRequestRefId)) { predicate = predicate.And(p => p.QuotationRequestRefId == req.QuotationRequestRefId); } if (!string.IsNullOrEmpty(req.InsuranceQuotationId)) { predicate = predicate.And(p => p.InsuranceQuotationId == req.InsuranceQuotationId); } if (req.DateFrom != null && req.DateTo != null) { predicate = predicate.And(p => p.CreatedDate.Date >= req.DateFrom.Value.Date && p.CreatedDate.Date <= req.DateTo.Value.Date); } if (req.InsuranceCompanyId != null) { predicate = predicate.And(p => p.InsuranceCompanyId == req.InsuranceCompanyId); } if (req.VehicleId != null) { predicate = predicate.And(p => p.VehicleId == req.VehicleId); } if (req.ProductTypeId != null) { predicate = predicate.And(p => p.ProductTypeId == req.ProductTypeId); } if (req.InsuredId != null) { predicate = predicate.And(p => p.InsuredId == req.InsuredId); } var data = this.GetMany(predicate) .Include("InsuranceCompany") .Include("Client.ApplicationUser") .Include("Client") .Include("ProductType"); return(data); }
public IActionResult GetPoliciesRequest([FromBody] PolicyRequestDto req) { var data = unitOfWork.PoliciesMotor.GetPolicies(req); if (data == null) { return(NotFound(new BaseResponse(false, 404, "Previous request data was not found"))); } int pageSize = req.PageSize ?? configuration.GetValue <int>("PagingOptions:PageSize"); int pageNumber = req.PageNumber ?? configuration.GetValue <int>("PagingOptions:PageNumber"); PoliciesMotorResponseDto response = new PoliciesMotorResponseDto() { Data = mapper.Map <IEnumerable <PoliciesMotor>, IEnumerable <PoliciesMotorDto> >(PagingList.Create(data, pageSize, pageNumber)), TotalRecord = data.Count(), IsSuccess = true, StatusCode = (int)HttpStatusCode.OK, ResponseMessage = "Request has been complited successfully" }; return(Ok(response)); }