public async Task<IActionResult> Index(int id = 1, int pageSize = 10)
        {
            var user = await userManager.GetUserAsync(User);
            var reservations = await reservationService.GetReservationsForUser<ReservationViewModel>(user.Id);

            if (pageSize <= 0)
            {
                pageSize = 10;
            }
            int pageCount = (int)Math.Ceiling((double)reservations.Count() / pageSize);
            if (id > pageCount || id < 1)
            {
                id = 1;
            }

            var viewModel = new ReservationsIndexViewModel
            {
                CurrentPage = id,
                PagesCount = pageCount,
                Reservations = reservations.GetPageItems(id, pageSize),
                Controller = "Reservations",
                Action = nameof(Index),
            };

            return this.View(viewModel);
        }
예제 #2
0
        public IActionResult Index(string filter, int?page, int pageSize = 10)
        {
            int pageNumber = (page ?? 1);
            ReservationsIndexViewModel model = new ReservationsIndexViewModel()
            {
                Reservations = reservationService.GetAllReservations().Select(r => new ReservationIndexViewModel()
                {
                    Name            = r.FirstName + " " + r.LastName,
                    Email           = r.Email,
                    DepartureCity   = flightService.GetFlightById(r.FlightID).DepartureCity,
                    DepartureTime   = flightService.GetFlightById(r.FlightID).DepartureTime,
                    DestinationCity = flightService.GetFlightById(r.FlightID).DestinationCity,
                    PhoneNumber     = r.PhoneNumber,
                    TicketType      = r.TicketType,
                    TicketsCount    = r.TicketsCount
                }).ToList(),
                Filter     = filter,
                PageNumber = pageNumber,
                PagesCount = (int)Math.Ceiling(reservationService.GetAllReservations().Count / (double)pageSize),
                PageSize   = pageSize
            };

            if (filter == "email")
            {
                model.Reservations = model.Reservations.OrderBy(r => r.Email).ToList();
            }
            else if (filter == "emailReversed")
            {
                model.Reservations = model.Reservations.OrderByDescending(r => r.Email).ToList();
            }

            model.Reservations = model.Reservations.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();

            return(View(model));
        }
예제 #3
0
        // GET: Reservations
        public IActionResult Index(ReservationsIndexViewModel model)
        {
            if (GlobalVar.LoggedOnUserId == -1)
            {
                return(RedirectToAction("LogInRequired", "Users"));
            }

            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;

            List <Reservation> reservations = _context.Reservations.Skip((model.Pager.CurrentPage - 1) * PageSize).Take(PageSize).ToList();

            List <ReservationsViewModel> list = new List <ReservationsViewModel>();

            foreach (var reservation in reservations)
            {
                int userId = reservation.UserId;
                int roomId = reservation.RoomId;

                UsersViewModel userVM = new UsersViewModel()
                {
                    Id        = reservation.User.Id,
                    FirstName = reservation.User.FirstName,
                    LastName  = reservation.User.LastName,
                };

                RoomsViewModel roomVM = new RoomsViewModel()
                {
                    Id         = reservation.Room.Id,
                    Capacity   = reservation.Room.Capacity,
                    PriceAdult = reservation.Room.PriceAdult,
                    PriceChild = reservation.Room.PriceChild,
                    Number     = reservation.Room.Number,
                    Type       = (RoomTypeEnum)reservation.Room.Type
                };

                int clientsCount = _context.ClientReservation.Where(x => x.ReservationId == reservation.Id).Count();

                list.Add(new ReservationsViewModel()
                {
                    Id   = reservation.Id,
                    User = userVM,
                    Room = roomVM,
                    CurrentReservationClientCount = clientsCount,
                    DateOfAccommodation           = reservation.DateOfAccommodation,
                    DateOfExemption     = reservation.DateOfExemption,
                    IsAllInclusive      = reservation.IsAllInclusive,
                    IsBreakfastIncluded = reservation.IsBreakfastIncluded,
                    OverallBill         = reservation.OverallBill,
                });
            }

            model.Items            = list;
            model.Pager.PagesCount = Math.Max(1, (int)Math.Ceiling(_context.Reservations.Count() / (double)PageSize));

            return(View(model));
        }
        // GET: ReservationsController
        public async Task <IActionResult> Index(ReservationsIndexViewModel model)
        {
            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;
            List <ReservationsViewModel> items = await context.Reservations.Skip((model.Pager.CurrentPage - 1) *PageSize).Take(PageSize).Select(c => new ReservationsViewModel()
            {
                Id           = c.Id,
                Room         = c.Room,
                Clients      = c.Clients.Where(e => e.ReservationId == c.Id).Select(e => e.Client).ToList(),
                Start        = c.Start,
                End          = c.End,
                Breakfast    = c.Breakfast,
                AllInclusive = c.AllInclusive,
                Account      = c.Account,
                Cost         = c.Cost
            }).ToListAsync();

            model.Reservations     = items;
            model.Pager.PagesCount = (int)Math.Ceiling(await context.Reservations.CountAsync() / (double)PageSize);

            return(View(model));
        }
예제 #5
0
        //GET : Reservation
        public async Task <IActionResult> Index(ReservationsIndexViewModel model)
        {
            model.Pager ??= new PagerViewModel();
            model.Pager.CurrentPage = model.Pager.CurrentPage <= 0 ? 1 : model.Pager.CurrentPage;

            List <ReservationsViewModel> items = await _context.Reservations.Skip((model.Pager.CurrentPage - 1) *PageSize).Take(PageSize).Select(c => new ReservationsViewModel()
            {
                FirstName    = c.FirstName,
                SecondName   = c.SecondName,
                LastName     = c.LastName,
                EGN          = c.EGN,
                PhoneNumber  = c.PhoneNumber,
                Nationality  = c.Nationality,
                TypeOfTicket = c.TypeOfTicket,
                Email        = c.Email
            }).ToListAsync();

            model.Items            = items;
            model.Pager.PagesCount = (int)Math.Ceiling(await _context.Reservations.CountAsync() / (double)PageSize);

            return(View(model));
        }
예제 #6
0
        // GET: Reservations
        public async Task <IActionResult> Index(ReservationsIndexViewModel model)
        {
            if (GetCookie("LoggedIn") != "true")
            {
                return(Redirect("/"));
            }
            else
            {
                model.Pager ??= new PagerViewModel();

                StringValues value = StringValues.Empty;
                Request.Query.TryGetValue("page", out value);
                model.Pager.CurrentPage = StringValues.IsNullOrEmpty(value) ? 1 : int.Parse(value);

                value = StringValues.Empty;
                Request.Query.TryGetValue("pagesize", out value);
                model.Pager.PageSize = StringValues.IsNullOrEmpty(value) ? 10 : int.Parse(value);

                model.Pager.PagesCount = (int)Math.Ceiling((double)_context.Reservations.ToArray().Length / (double)model.Pager.PageSize);

                value = StringValues.Empty;
                Request.Query.TryGetValue("clientid", out value);

                List <ReservationsViewModel> items = new List <ReservationsViewModel>();

                foreach (Reservation r in _context.Reservations.ToArray().Skip((model.Pager.CurrentPage - 1) * model.Pager.PageSize).Take(model.Pager.PageSize))
                {
                    ReservationsViewModel item = new ReservationsViewModel();
                    item.Id         = r.Id;
                    item.RoomNumber = r.RoomNumber;
                    User user = _context.Users.ToArray().Where(u => u.Id == r.UserId).FirstOrDefault();
                    item.UserName = user != null ? user.FirstName + " " + user.LastName : "Unknown";

                    List <string> clientsNames = new List <string>();
                    int[]         clientIds    = r.ClientsIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(c => int.Parse(c)).ToArray();

                    if (!StringValues.IsNullOrEmpty(value))
                    {
                        if (!clientIds.Contains(int.Parse(value)))
                        {
                            continue;
                        }
                    }

                    foreach (int i in clientIds)
                    {
                        Client client = _context.Clients.ToArray().Where(c => c.Id == i).FirstOrDefault();

                        if (client != null)
                        {
                            clientsNames.Add(client.FirstName + " " + client.LastName);
                        }
                    }

                    item.ClientsNames      = clientsNames.ToArray();
                    item.DateAccomodation  = r.DateAccomodation.ToShortDateString();
                    item.DateRelease       = r.DateRelease.ToShortDateString();
                    item.BreakfastIncluded = r.BreakfastIncluded;
                    item.AllInclusive      = r.AllInclusive;
                    item.PaymentAmount     = r.PaymentAmount;

                    items.Add(item);
                }


                model.Items = items;

                return(View(model));
            }
        }