コード例 #1
0
        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"));
            }
        }
コード例 #2
0
        /// <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"));
            }
        }