public IActionResult Index()
        {
            //put all the reservation from the database in a model list
            List <BookingDetailModel> ALLreservations = _context.Reservations.Select(r => new BookingDetailModel()
            {
                //Sitting
                SittingID   = r.SittingID,
                SittingName = r.Sitting.SittingName,

                //Reservation
                ReservationID          = r.ReservationID,
                NumberOfGuests         = r.NumberOfGuests,
                AdditionalRequirements = r.AdditionalRequirements,
                Date      = r.Date,
                StartTime = r.StartTime,
                EndTime   = r.EndTime,
                Status    = r.Status,
                Source    = r.Source,

                //Customer
                CustomerId = r.Customer.CustomerID,
                FirstName  = r.Customer.FirstName,

                //tables
                NumberOfTables = r.Table_Reservation.Count
                                 //order it based on its date
            }).OrderByDescending(r => r.Date).ToList();

            //set the area for each reservation
            foreach (var reservation in ALLreservations)
            {
                //get the area name based on the reservation ID
                reservation.Area = _services.GetAreaByID(reservation.ReservationID);
            }
            //send the list model with data to the View
            return(View(ALLreservations));
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            Customer c = _services.GetCustomerByEmail(user.Email);

            try
            {
                MyReservations = _context.Reservations.Select(r => new ReservationModel()
                {
                    //Sitting
                    SittingID   = r.SittingID,
                    SittingName = r.Sitting.SittingName,

                    //Reservation
                    ReservationID          = r.ReservationID,
                    NumberOfGuests         = r.NumberOfGuests,
                    AdditionalRequirements = r.AdditionalRequirements,
                    Date      = r.Date,
                    StartTime = r.StartTime,
                    EndTime   = r.EndTime,
                    Status    = r.Status,

                    //Customer
                    CustomerId = r.Customer.CustomerID,
                    FirstName  = r.Customer.FirstName,
                    LastName   = r.Customer.LastName,

                    //tables
                    NumberOfTables = r.Table_Reservation.Count,
                }).Where(r => r.CustomerId == c.CustomerID).OrderByDescending(r => r.Date).ToList();

                foreach (var i in MyReservations)
                {
                    i.Area = _services.GetAreaByID(i.ReservationID);
                }
            }
            catch
            {
                MyReservations = new List <ReservationModel>();
            }

            return(Page());
        }
        public IActionResult MReservations()
        {
            var Customers              = _context.Customers.ToList();
            var Reservations           = _context.Reservations.ToList();
            var Table_Reservationsoles = _context.Table_Reservations.ToList();
            var tables   = _context.Tables.ToList();
            var Sittings = _context.Sittings.ToList();
            //Getting all the reservations from the database in a model list.
            List <BookingDetailModel> items = _context.Reservations.Select(r => new BookingDetailModel()
            {
                //Sitting
                SittingID   = r.SittingID,
                SittingName = r.Sitting.SittingName,

                //Reservation
                ReservationID          = r.ReservationID,
                NumberOfGuests         = r.NumberOfGuests,
                AdditionalRequirements = r.AdditionalRequirements,
                Date      = r.Date,
                StartTime = r.StartTime,
                EndTime   = r.EndTime,
                Status    = r.Status, //Pending, confirmed, seated, completed, cancelled
                Source    = r.Source, //Website, phone, in person, email etc...

                //Customer
                CustomerId = r.Customer.CustomerID,
                FirstName  = r.Customer.FirstName,

                //tables
                NumberOfTables = r.Table_Reservation.Count,
                //ordering the list by Date in descending order.
            }).OrderByDescending(r => r.Date).ToList();

            //Setting the area for the reservations.
            foreach (var i in items)
            {
                //Getting the area name based on the ReservationID
                i.Area = _services.GetAreaByID(i.ReservationID);
            }
            //Sending the populated model to the view
            return(View(items));
        }