public IActionResult ShowAllReservations(ReservationTableViewModel model, int uniquePlaneNumber) { var reservations = this.reservationService.GetFlightReservations(uniquePlaneNumber); ViewBag.Reservations = reservations; var flight = this.flightService.GetExactFlight(uniquePlaneNumber); var reservationPages = this.reservationService.ReturnPages(model); ViewBag.ReturnedReservations = reservationPages.Result.Items; ViewBag.ReturnedReservationPagers = reservationPages.Result.Pager.PagesCount; ViewBag.ReturnedReservationPagersCurrentPage = reservationPages.Result.Pager.CurrentPage; return(View(flight)); }
public PartialViewResult GetTableOfReservations(int studioId, int dayIndex) { if (studioId == 0) { return(null); } if (dayIndex < 0) { dayIndex = 0; } if (dayIndex > 9) { dayIndex = 9; } RehearsalStudio studio = _reservationService.Studios.FirstOrDefault(l => l.Id == studioId); if (studio == null) { return(null); } DateTime currentStartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); currentStartDate = currentStartDate.AddDays(dayIndex); DateTime currentEndDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); currentEndDate = currentEndDate.AddDays(dayIndex); List <Reservation> reservations = _reservationService.Reservations .Where(l => l.RehearsalRoom.StudioId == studioId && l.IsConflicting(currentStartDate, currentEndDate)) .ToList(); ReservationTableViewModel reservationTableViewModel = new ReservationTableViewModel { OpeningHour = GetOpeningHour(studio, dayIndex), ClosingHour = GetClosingHour(studio, dayIndex), NumberOfAvailableRooms = studio.Rooms.Where(l => l.Available).Count(), Rooms = studio.Rooms.ToList(), Reservations = reservations, Studio = studio, Index = dayIndex }; return(PartialView("_ReservationsTable", reservationTableViewModel)); }
/// <summary> /// Взима лист от резервация и броя на страниците /// </summary> /// <param name="model"></param> /// <returns> Лист от ReservationViewModel </returns> public async Task <ReservationTableViewModel> ReturnPages(ReservationTableViewModel model) { model.Pager ??= new PagerViewModel(); model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage; List <ReservationViewModel> items = dbContext.Reservations.Skip((model.Pager.CurrentPage - 1) * PageSize).Take(PageSize).Select(c => new ReservationViewModel() { FirstName = c.FirstName, SecondName = c.SecondName, FamilyName = c.FamilyName, Email = c.Email, PIN = c.PIN, Nationality = c.Nationality, TelephoneNumber = c.TelephoneNumber, TicketType = c.TicketType.Name, FlightId = c.FlightId }).ToList(); model.Items = items; model.Pager.PagesCount = (int)Math.Ceiling(dbContext.Reservations.Count() / (double)PageSize); return(model); }
public IViewComponentResult InvokeAsync(int studioId, bool isNext) { //if (DayIndex < 0) // return NotFound(); DayIndex = isNext ? DayIndex + 1 : DayIndex - 1; ReservationTableViewModel viewModel = new ReservationTableViewModel(); RehearsalStudio studio = _reservationService.GetStudio(studioId); viewModel.Studio = studio; viewModel.NumberOfAvailableRooms = studio.Rooms.Count; viewModel.Index = DayIndex; viewModel.OpeningHour = GetOpeningHour(studio, DayIndex); viewModel.ClosingHour = GetClosingHour(studio, DayIndex); viewModel.Reservations = _reservationService.GetReservationsByStudioId(studioId).ToList(); viewModel.Rooms = _reservationService.Rooms.Where(l => l.StudioId == studioId).ToList(); return(View(viewModel)); }