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));
        }