public (IEnumerable <TicketViewModel>, int) TicketFilter(TicketSearchModel search) { var query = Context.Tickets.Where(t => (search.ticketIds.Count == 0 || search.ticketIds.Contains(t.Id)) && (search.employeesIds.Count == 0 || search.employeesIds.Contains(t.UpdatedById.Value)) && (search.statusIds.Count == 0 || search.statusIds.Contains(t.StatusId)) && (search.SpecificDate == null || search.SpecificDate.Value.Date == t.CreatedAt.Date)) .Select(t => new TicketViewModel { Id = t.Id, CreateTime = t.CreatedAt, TicketNumber = t.TicketNumber, VisitorId = t.CreatedById.Value, VisitorName = t.CreatedBy.UserName, BranchId = t.BranchDepartement.BranchId, BranchNameAR = t.BranchDepartement.Branch.NameAR, BranchNameEN = t.BranchDepartement.Branch.NameEN, DepartementId = t.BranchDepartement.DepartementId, DepartementNameAR = t.BranchDepartement.Departement.NameAR, DepartementNameEN = t.BranchDepartement.Departement.NameEN, StatusId = t.StatusId, StatusNameAR = t.Status.NameAR, StatusNameEN = t.Status.NameEN, BranchDepartementId = t.BranchDepartementId }); var count = query.Count(); var data = query.OrderBy(c => c.Id).Skip((search.pageNumber - 1) * search.pageSize).Take(search.pageSize); return(data, count); }
public TicketSearchResult FindFlights(TicketSearchModel searchCriteria) { var result = new TicketSearchResult(); result.ToFlights = _flightRepository.GetAll(). Where(x => CompareDates(x.DepartureDate, searchCriteria.DepartureDate) && x.CityToId == searchCriteria.CityToId && x.CityFromId == searchCriteria.CityFromId && x.BookedSeats + searchCriteria.NumberOfPassengers <= x.TotalSeats) .OrderByDescending(x => x.DepartureDate) .ToList(); if (searchCriteria.IsRoundWay) { result.ReturnFlights = _flightRepository.GetAll(). Where(x => CompareDates(x.DepartureDate, searchCriteria.BackDate.Value) && x.CityToId == searchCriteria.CityFromId && x.CityFromId == searchCriteria.CityToId && x.BookedSeats + searchCriteria.NumberOfPassengers <= x.TotalSeats) .OrderByDescending(x => x.DepartureDate) .ToList(); } return(result); }
public ActionResult Search(TicketSearchModel model) { var search = Mapper.Map <TicketSearchQuery>(model); search.BuyerId = User.Identity.GetUserIdInt(); return(PartialView("Partials/_Tickets", Mapper.Map <TicketResultViewModel>(_ticketsService.Where(search)))); }
public IResponse GetTicket(TicketSearchModel search) { var(result, totalRows) = UOW.Tickets.TicketFilter(search); response.pagesTotalRows = totalRows; float all_pages = (float)totalRows / search.pageSize; response.pagesTotalNumber = (int)Math.Ceiling(all_pages); response.pageSize = search.pageSize; response.pageNumber = search.pageNumber; response.data = result; return(response); }
public ActionResult Search() { log.Debug("Begin Search()"); try { var result = new TicketSearchModel(ServicesProxy); log.Debug(string.Format("{0} new TicketSearchModel: {1}", result.OK ? "Call" : "Fail", result.Errors != null && result.Errors.Count > 0 ? result.Errors.Aggregate((i, j) => i + "." + j) : null)); return(View(result)); } finally { log.Debug("End Search()"); } }
public void FindFlights_RoundWayAndFlightsExist_ReturnToAndFromFlights() { //Arrange var searchCriteria = new TicketSearchModel() { IsRoundWay = true, DepartureDate = DateTime.Now.AddDays(1), BackDate = DateTime.Now.AddDays(3), CityFromId = MoscowCityId, CityToId = LondonCityId, NumberOfPassengers = 1 }; //Act var actualResult = _ticketService.FindFlights(searchCriteria); //Assert Assert.AreEqual(1, actualResult.ToFlights.Count); Assert.AreEqual(1, actualResult.ReturnFlights.Count); }
public ActionResult GetTickets([FromQuery] TicketSearchModel search) { var response = service.GetTicket(search); return(Ok(response)); }