public IEnumerable <Ticket> GetTickets(TicketsRequestDto req) { Expression <Func <Ticket, bool> > predicate = c => true; if (!string.IsNullOrEmpty(req.ClientName)) { predicate = predicate.And(p => p.Client.FirstName.Contains(req.ClientName) || p.Client.MiddleName.Contains(req.ClientName) || p.Client.LastName.Contains(req.ClientName) || p.Client.FirstNameAr.Contains(req.ClientName) || p.Client.MiddleNameAr.Contains(req.ClientName) || p.Client.LastNameAr.Contains(req.ClientName)); } if (req.TicketType != null) { predicate = predicate.And(p => p.TicketTypeId == req.TicketType); } if (req.TicketStatus != null) { predicate = predicate.And(p => p.TicketStatusId == req.TicketStatus); } 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); } var data = this.GetMany(predicate).OrderByDescending(p => p.CreatedDate) .Include("TicketStatus") .Include("TicketType") .Include("Client") .Include("ApplicationUser") ; return(data); }
public IActionResult GetTicketsRequest([FromBody] TicketsRequestDto req) { var data = unitOfWork.Ticket.GetTickets(req); int pageSize = req.PageSize ?? configuration.GetValue <int>("PagingOptions:PageSize"); int pageNumber = req.PageNumber ?? configuration.GetValue <int>("PagingOptions:PageNumber"); TicketsResponseDto response = new TicketsResponseDto() { Data = mapper.Map <IEnumerable <Ticket>, IEnumerable <TicketsDto> >(PagingList.Create(data, pageSize, pageNumber)), TotalRecord = data.Count(), IsSuccess = true, StatusCode = (int)HttpStatusCode.OK, ResponseMessage = "Request has been complited successfully" }; if (data == null) { return(NotFound(new BaseResponse(false, 404, "Previous request data was not found"))); } return(Ok(response)); }