public TicketDataTable GetBoughtTickets(string param, int page, int pageSize) { param = param ?? ""; var boughtTickets = _ticketRepository.GetAllQueryable() .Where(t => t.Deleted == false) .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == Core.Enum.TicketStatus.Bought) .Skip((page - 1) * pageSize).Take(pageSize).ToList(); foreach (var bt in boughtTickets) { if (bt.ExpiredDateTimeUTC <= DateTime.UtcNow) { bt.Status = 0; } } var totalBoughtTickets = _ticketRepository.GetAllQueryable() .Where(t => t.Deleted == false) .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == Core.Enum.TicketStatus.Bought).Count(); var ticketRowViewModels = _mapper.Map <List <Ticket>, List <TicketRowViewModel> >(boughtTickets); var ticketDataTable = new TicketDataTable() { Data = ticketRowViewModels, Total = totalBoughtTickets }; return(ticketDataTable); }
public TicketDataTable GetCompletedTickets(string param, int page, int pageSize) { param = param ?? ""; var completedTickets = _ticketRepository.GetAllQueryable() .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == TicketStatus.Completed || t.Status == TicketStatus.RenamedFail) .OrderByDescending(t => t.UpdatedAtUTC) .Skip((page - 1) * pageSize).Take(pageSize).ToList(); var totalCompletedTickets = _ticketRepository.GetAllQueryable() .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == TicketStatus.Completed || t.Status == TicketStatus.RenamedFail).Count(); var ticketRowViewModels = _mapper.Map <List <Ticket>, List <TicketRowViewModel> >(completedTickets); var ticketDataTable = new TicketDataTable() { Data = ticketRowViewModels, Total = totalCompletedTickets }; return(ticketDataTable); }
public TicketDataTable GetReplaceTickets(int routeTicketId) { var routeTickets = _routeTicketRepository.Get( x => x.Deleted == false && x.Id == routeTicketId && x.Route.Status == RouteStatus.Bought) .Route.RouteTickets.OrderBy(x => x.Order); var ticketDataTable = new TicketDataTable(); if (routeTickets.Count() == 2) { var firstTicket = routeTickets.FirstOrDefault().Ticket; var lastTicket = routeTickets.LastOrDefault().Ticket; var replaceTickets = new List <Ticket>(); if (firstTicket.Status == TicketStatus.RenamedFail) { var lastTicketDepartureDatetime = lastTicket.DepartureDateTimeUTC; replaceTickets = _ticketRepository.GetAllQueryable() .Where(x => x.Deleted == false && x.ExpiredDateTimeUTC > DateTime.UtcNow && x.Status == TicketStatus.Valid) .Where(x => x.ArrivalDateTimeUTC <= lastTicketDepartureDatetime && x.SellingPrice <= firstTicket.SellingPrice).ToList(); } else { var firstArrivalDateTime = firstTicket.ArrivalDateTimeUTC; replaceTickets = _ticketRepository.GetAllQueryable() .Where(x => x.Deleted == false && x.ExpiredDateTimeUTC > DateTime.UtcNow && x.Status == TicketStatus.Valid) .Where(x => x.DepartureDateTimeUTC >= firstArrivalDateTime && x.SellingPrice <= lastTicket.SellingPrice).ToList(); } var replaceTicketVms = _mapper.Map <List <Ticket>, List <TicketRowViewModel> >(replaceTickets); ticketDataTable.Data = replaceTicketVms; ticketDataTable.Total = replaceTickets.Count(); } else if (routeTickets.Count() == 3) { } return(ticketDataTable); }
public TicketDataTable GetRenamedTickets(string param, int page, int pageSize) { param = param ?? ""; var renamedTickets = _ticketRepository.GetAllQueryable() .Where(t => t.Deleted == false) .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == Core.Enum.TicketStatus.Renamed) .Skip((page - 1) * pageSize).Take(pageSize).ToList(); var totalRenamedTickets = _ticketRepository.GetAllQueryable() .Where(t => t.Deleted == false) .Where(t => t.TicketCode.ToLower().Contains(param.ToLower())) .Where(t => t.Status == Core.Enum.TicketStatus.Renamed).Count(); var ticketRowViewModels = _mapper.Map <List <Ticket>, List <TicketRowViewModel> >(renamedTickets); var ticketDataTable = new TicketDataTable() { Data = ticketRowViewModels, Total = totalRenamedTickets }; return(ticketDataTable); }