public async Task <bool> UpdateScheduleStateCancelled(ShuttleSchedule.ReadOnly shuttleSchedule)
        {
            ShuttleSchedule schedule = _shuttleScheduleDAO.RetrieveShuttleBookingByID(shuttleSchedule.Id);

            schedule.SetScheduleState("CANCELLED");

            return(await _shuttleScheduleDAO.UpdateShuttleBooking(schedule));
        }
 public async Task <bool> UpdateShuttleBooking(ShuttleSchedule shuttleShedule)
 {
     _context.Update(shuttleShedule);
     //Check for successful changes to database
     //Successful
     if (await _context.SaveChangesAsync() > 0)
     {
         return(true);
     }
     //Fail
     else
     {
         return(false);
     }
 }
 public async Task <bool> InsertShuttleBooking(ShuttleSchedule shuttleShedule)
 {
     Debug.WriteLine("DAO - Adding Shuttle Schedule...");
     _context.Add(shuttleShedule);
     Debug.WriteLine("DAO - Added Shuttle Schedule.");
     //Check for successful changes to database
     //Successful
     if (await _context.SaveChangesAsync() > 0)
     {
         return(true);
     }
     //Fail
     else
     {
         return(false);
     }
 }
        public async Task <bool> AddGuestShuttleBooking(ShuttleSchedule shuttleSchedule)
        {
            Debug.WriteLine("[CREATE] - Adding shuttle schedule of id: " + shuttleSchedule.RetrieveId());

            if (await _shuttleScheduleDAO.InsertShuttleBooking(shuttleSchedule))
            {
                //added shuttle schedule. now call bus/passenger service to add passengers under appropriate buses

                ShuttleSchedule.ReadOnly shuttle = shuttleSchedule.RetrieveShuttleScheduleObject();

                if (await _shuttleBusPassengerService.InsertShuttlePassengers(shuttle.Id,
                                                                              shuttle.ScheduleDateTime, shuttle.TravelDirection, shuttle.NumberOfPassengers))
                {
                    //passenger adding is successful
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
        public IActionResult TransportReservation(IFormCollection transportResForm)
        {
            var resId          = Convert.ToInt32(transportResForm["ResId"].ToString());
            var guestId        = Convert.ToInt32(transportResForm["GuestId"].ToString());
            var guestNum       = Convert.ToInt32(transportResForm["NumOfGuest"].ToString());
            var guestName      = transportResForm["GuestName"].ToString();
            var arrivalCheck   = transportResForm["Arrival"].ToString();
            var departureCheck = transportResForm["Departure"].ToString();

            // check if user wants arrival transport reservation
            if (arrivalCheck == "true")
            {
                var arrival           = Convert.ToDateTime(transportResForm["Arrival Date/Time"].ToString());
                var arrivalNumOfGuest = Convert.ToInt32(transportResForm["Arrival Number of Guests"].ToString());

                string arrivalSchId = _shuttleService.GenerateID(guestId, "Arrival");

                // create dictionary object for arrival
                Dictionary <string, object> arrivalDict = new Dictionary <string, object>
                {
                    { "id", arrivalSchId },
                    { "ScheduleDateTime", arrival },
                    { "TravelDirection", "Arrival" },
                    { "GuestId", guestId },
                    { "NumberOfPassengers", arrivalNumOfGuest },
                    { "GuestName", guestName }
                };

                // convert dictionary into a shuttle schedule object using Mod 2 Team 2 Adapter
                IShuttleAdapter          arrivalShuttleAdapter = new ShuttleScheduleAdapter(arrivalDict);
                ShuttleSchedule.ReadOnly arrivalSchedule       = arrivalShuttleAdapter.GetShuttleSchedule().RetrieveShuttleScheduleObject();

                // call upon mod 2 team 2 function to check for availability
                if (_shuttleService.CheckAvailabilityForDateAndTime(arrivalSchedule.ScheduleDateTime,
                                                                    arrivalSchedule.TravelDirection, arrivalSchedule.NumberOfPassengers))
                {
                    // create an shuttle schedule object based on the to input into database
                    ShuttleSchedule arrivalShuttleSchedule = new ShuttleSchedule(arrivalSchId, arrival, "Arrival",
                                                                                 guestId, arrivalNumOfGuest, guestName, "CREATED");

                    // add shuttle object into Mod 2 Team 2 shuttle schedule table
                    _shuttleService.AddGuestShuttleBooking(arrivalShuttleSchedule).Result.Equals(true);
                }
                else
                {
                    TempData["Message"] = "ERROR: Unavailable Transport Timing for Airport to Hotel!";
                    return(RedirectToAction("TransportReservation", "TransportReservation", new { GuestId = guestId, NumOfGuest = guestNum }));
                }
            }

            // check if user wants departure transport reservation
            if (departureCheck == "true")
            {
                var departure           = Convert.ToDateTime(transportResForm["Departure Date/Time"].ToString());
                var departureNumOfGuest = Convert.ToInt32(transportResForm["Departure Number of Guests"].ToString());

                string depSchId = _shuttleService.GenerateID(guestId, "Departure");

                Dictionary <string, object> departureDict = new Dictionary <string, object>
                {
                    { "id", depSchId },
                    { "ScheduleDateTime", departure },
                    { "TravelDirection", "Departure" },
                    { "GuestId", guestId },
                    { "NumberOfPassengers", departureNumOfGuest },
                    { "GuestName", guestName }
                };

                // convert dictionary into a shuttle schedule object using Mod 2 Team 2 Adapter
                IShuttleAdapter          departureShuttleAdapter = new ShuttleScheduleAdapter(departureDict);
                ShuttleSchedule.ReadOnly departureSchedule       = departureShuttleAdapter.GetShuttleSchedule().RetrieveShuttleScheduleObject();

                // call upon mod 2 team 2 function to check for availability
                if (_shuttleService.CheckAvailabilityForDateAndTime(departureSchedule.ScheduleDateTime,
                                                                    departureSchedule.TravelDirection, departureSchedule.NumberOfPassengers))
                {
                    // create an shuttle schedule object based on the to input into database
                    ShuttleSchedule departureShuttleSchedule = new ShuttleSchedule(depSchId, departureSchedule.ScheduleDateTime, departureSchedule.TravelDirection,
                                                                                   departureSchedule.GuestId, departureSchedule.NumberOfPassengers, departureSchedule.GuestName, "CREATED");

                    // add shuttle object into Mod 2 Team 2 shuttle schedule table
                    _shuttleService.AddGuestShuttleBooking(departureShuttleSchedule).Result.Equals(true);
                }
                else
                {
                    TempData["Message"] = "ERROR: Unavailable Transport Timing for Hotel to Airport!";
                    return(RedirectToAction("TransportReservation", "TransportReservation", new { GuestId = guestId, NumOfGuest = guestNum }));
                }
            }

            // After completion of creation to redirect user to "/Reservation/ReservationView"
            TempData["Message"] = "Transportation Booked Successfully!";
            return(Redirect("/ReservationManagement/UpdateReservation?resid=" + resId));
        }