public ActionResult GetAddtionalDetails(AddonDetailsDTO objAddons) { try { if (objAddons == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //Builds Reservation obj from objAddons param Reservation tempReservation = new Reservation { Arrival = objAddons.CheckIn, Depature = objAddons.CheckOut, NoOfGuests = objAddons.NoOfGuests, RoomId = objAddons.RoomId, Room = context.Rooms.Find(objAddons.RoomId), UserId = objAddons.UserId, ApplicationUsers = context.Users.Find(objAddons.UserId), BoardTypeId = objAddons.BoardTypeId, BoardType = context.BoardTypes.Find(objAddons.BoardTypeId), }; //Checks to see if there was any selected extras and adds them if so if (objAddons.SelectedExtra != null) { foreach (int id in objAddons.SelectedExtra) { tempReservation.Extras.Add(context.Extras.Where(x => x.Id == id).FirstOrDefault()); } } //Buillds PaymentDetails object using Reservation Functions PaymentDetails objPaymentDTO = new PaymentDetails { RoomCosts = tempReservation.calculateRoomCosts(objAddons.Days), BoardCosts = tempReservation.CalculateBoardCosts(objAddons.Days), BookingExtrasCost = tempReservation.CalculateBookingExtraCosts(objAddons.Days), TotalCost = tempReservation.CalculateBookingBill(objAddons.Days), DepositToPay = tempReservation.CalculateDepositAmount(objAddons.Days), }; tempReservation.TotalBill = tempReservation.CalculateBookingBill(objAddons.Days); tempReservation.Deposit = tempReservation.CalculateDepositAmount(objAddons.Days); Session["objAddon"] = objAddons; return(View("PaymentBill", objPaymentDTO)); } catch (Exception ex) { this.AddNotification("", NotificationType.ERROR); ViewBag.Error = ("Error: " + Convert.ToString(ex)); return(View("~/Views/Shared/Error.cshtml")); } }
/// <summary> /// Will build the addtional details form so the user can see the options available /// </summary> /// <param name="objConfirm">ConfirmDetailsDTO Object to build the Additional Details</param> /// <returns>AdditionalDeatailsDTO View Model </returns> public ActionResult GetAddtionalDetails(ConfirmDetailsDTO objConfirm) { try { //Builds AddonDetailsDTO using objConfirm params AddonDetailsDTO addonDTO = new AddonDetailsDTO { UserId = objConfirm.UserId, ApplicationUsers = context.Users.Find(objConfirm.UserId), RoomId = objConfirm.RoomId, Room = context.Rooms.Find(objConfirm.RoomId), CheckIn = objConfirm.CheckIn, CheckOut = objConfirm.CheckOut, Days = objConfirm.Days }; //Gets viewbag data for the select list of all the board types ViewBag.BoardTypeId = from u in context.BoardTypes select new SelectListItem { Value = u.Id.ToString(), Text = u.Board_Type + " - Per Night £" + u.BoardCosts }; //Gets the number of guests a person can choose from based on the maximum capacity of the room int max = addonDTO.Room.RoomType.Capacity; List <SelectListItem> NoOfGuests = new List <SelectListItem>(); for (int a = 1; a <= max; a++) { NoOfGuests.Add(new SelectListItem { Value = a.ToString(), Text = a.ToString() }); } ViewBag.NoOfGuests = new SelectList(NoOfGuests, "Value", "Text"); //Gets only the Extras that are allowed at booking addonDTO.AllExtras = context.Extras.Where(x => x.Bookable == true).ToList(); return(View(addonDTO)); } catch (Exception ex) { this.AddNotification("", NotificationType.ERROR); ViewBag.Error = ("Error: " + Convert.ToString(ex)); return(View("~/Views/Shared/Error.cshtml")); } }