public async Task <ActionResult <PaginatedItems <TicketListResponse> > > GetListTicketByCustomerId(string nroDni, string nroTicketTitle, int?serviceTypeId, int?ticketStatusId, DateTime?startDate, DateTime?endDate, [FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0) { var user = await _customerUserRepository.GetCustomerUserByDni(nroDni); if (user == null) { return(StatusCode(StatusCodes.Status400BadRequest)); } TicketsEmployeeSearch search = new TicketsEmployeeSearch { CustomerId = user?.CustomerId, SearchContent = nroTicketTitle ?? string.Empty, StartDate = startDate ?? null, EndtDate = endDate ?? null, ServiceTypeId = serviceTypeId ?? -1, TicketStatusId = ticketStatusId ?? -1 }; var response = await _ticketRepository.GetListTicketByCustomerId(search); var totalItems = response.Count(); var itemsOnPage = response .Skip(pageSize * pageIndex) .Take(pageSize) .ToList(); return(new PaginatedItems <TicketListResponse>(pageIndex, pageSize, totalItems, itemsOnPage)); }
public async Task <IEnumerable <TicketListResponse> > GetListTicketByCustomerId(TicketsEmployeeSearch search) { var response = await _OTRSContext.SpListTicketsByUser.FromSqlInterpolated( $"CALL sp_list_tickets_by_user({search.SearchContent},{search.StartDate},{search.EndtDate},{search.ServiceTypeId},{search.TicketStatusId},{search.CustomerId});" ).ToListAsync(); var result = (from tk in response select new TicketListResponse { Id = tk.Id, TicketNumber = tk.Tn, ServiceTypeId = tk.IdTipoSolicitud, ServiceType = tk.TipoSolicitud, Title = tk.Solicitud, CreateTime = tk.FechaSolicitud, StatusId = tk.IdEstado, Status = tk.Estado }).ToList(); return(result); }