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> 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); }
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)); }