示例#1
0
        public ActionResult Create(CreateBookingRequestViewModel model)
        {
            try
            {
                var startDate     = Convert.ToDateTime(model.CheckinDate);
                var endDate       = Convert.ToDateTime(model.CheckOutDate);
                var roomTypes     = _roomTypeRepo.FindAll();
                var roomTypeItems = roomTypes.Select(q => new SelectListItem
                {
                    Text  = q.RoomName,
                    Value = q.RoomTypeId.ToString()
                });
                model.RoomType = roomTypeItems;
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                if (DateTime.Compare(startDate, endDate) > 1)
                {
                    ModelState.AddModelError("", "CheckinDate cannot be further than the CheckOutDate");
                    return(View(model));
                }
                var employee      = _userManager.GetUserAsync(User).Result;
                var allocation    = _bookingRepo.GetBookingsByEmployeeAndType(employee.Id, model.RoomTypeId);//id to employee id
                int daysRequested = (int)(startDate - endDate).TotalDays;

                if (daysRequested > allocation.NumberOfDays)
                {
                    ModelState.AddModelError("", "You do not have sufficient days to make this request");
                    return(View(model));
                }

                var bookingRequestModel = new BookingRequestViewModel
                {
                    EmployeeBookingRoomId = employee.Id,
                    CheckinDate           = startDate,
                    CheckOutDate          = endDate,
                    Approved      = null,
                    DateRequested = DateTime.Now,
                    DateActioned  = DateTime.Now,
                    RoomTypeId    = model.RoomTypeId
                };
                var bookingRequest = _mapper.Map <BookingRequest>(bookingRequestModel);
                var isSuccess      = _bookingRequestRepo.Create(bookingRequest);

                if (!isSuccess)
                {
                    ModelState.AddModelError("", "Something went wrong WITH SUBMITTING RECORD");
                    return(View(model));
                }
                return(RedirectToAction("MyBooking"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Something went wrong");
                return(View(model));
            }
        }
示例#2
0
        // GET: BookingRequest/Create
        public ActionResult Create()
        {
            var roomTypes     = _roomTypeRepo.FindAll();
            var roomTypeItems = roomTypes.Select(q => new SelectListItem {
                Text  = q.RoomName,
                Value = q.RoomTypeId.ToString()
            });
            var model = new CreateBookingRequestViewModel
            {
                RoomType = roomTypeItems
            };

            return(View(model));
        }