コード例 #1
0
        public ActionResult Reserve(int id, EquipmentReservation equipmentReservation)
        {
            var equipment = _repositoryFactory.EquipmentRepository.GetNullableById(id);

            equipmentReservation.Equipment = equipment;
            equipmentReservation.User      = GetCurrentUser(true);

            ModelState.Clear();
            equipmentReservation.TransferValidationMessagesTo(ModelState);

            // check for conflicting reservations
            //if (_repositoryFactory.EquipmentReservationRepository.Queryable.Any(a => a.Start <= equipmentReservation.Start && equipmentReservation.End <= a.End))
            if (_repositoryFactory.EquipmentReservationRepository.Queryable.Any(a =>
                                                                                (a.Start <= equipmentReservation.End && a.End >= equipmentReservation.Start && !a.Cancelled)))
            {
                ModelState.AddModelError("EquipmentReservation.Start", "There is a conflict with the requested times.  Please select a new time and try again.");
            }

            if (ModelState.IsValid)
            {
                _repositoryFactory.EquipmentReservationRepository.EnsurePersistent(equipmentReservation);

                Message = "Equipment Reservation has been made.";
                return(RedirectToAction("Index", "Authorized"));
            }

            var viewModel = EquipmentViewModel.Create(_repositoryFactory, equipment, equipmentReservation);

            return(View(viewModel));
        }
コード例 #2
0
        public static EquipmentViewModel Create(IRepositoryFactory repositoryFactory, Equipment equipment = null, EquipmentReservation equipmentReservation = null)
        {
            var viewModel = new EquipmentViewModel()
                {
                    Equipment = equipment,
                    EquipmentReservation = equipmentReservation ?? new EquipmentReservation()
                };

            if (equipment == null)
            {
                viewModel.Equipments = repositoryFactory.EquipmentRepository.Queryable.Where(a => a.Operator.ToLower() == EquipmentOperators.User).OrderBy(a => a.Name).ToList();
            }

            return viewModel;
        }
コード例 #3
0
        public static EquipmentViewModel Create(IRepositoryFactory repositoryFactory, Equipment equipment = null, EquipmentReservation equipmentReservation = null)
        {
            var viewModel = new EquipmentViewModel()
            {
                Equipment            = equipment,
                EquipmentReservation = equipmentReservation ?? new EquipmentReservation()
            };

            if (equipment == null)
            {
                viewModel.Equipments = repositoryFactory.EquipmentRepository.Queryable.Where(a => a.Operator.ToLower() == EquipmentOperators.User).OrderBy(a => a.Name).ToList();
            }

            return(viewModel);
        }
コード例 #4
0
        public ActionResult Reserve(int id, EquipmentReservation equipmentReservation)
        {
            var equipment = _repositoryFactory.EquipmentRepository.GetNullableById(id);

            equipmentReservation.Equipment = equipment;
            equipmentReservation.User = GetCurrentUser(true);

            ModelState.Clear();
            equipmentReservation.TransferValidationMessagesTo(ModelState);

            // check for conflicting reservations
            //if (_repositoryFactory.EquipmentReservationRepository.Queryable.Any(a => a.Start <= equipmentReservation.Start && equipmentReservation.End <= a.End))
            if (_repositoryFactory.EquipmentReservationRepository.Queryable.Any(a =>
                (a.Start <= equipmentReservation.End && a.End >= equipmentReservation.Start && !a.Cancelled)))
            {
                ModelState.AddModelError("EquipmentReservation.Start", "There is a conflict with the requested times.  Please select a new time and try again.");
            }

            if (ModelState.IsValid)
            {
                _repositoryFactory.EquipmentReservationRepository.EnsurePersistent(equipmentReservation);

                Message = "Equipment Reservation has been made.";
                return RedirectToAction("Index", "Authorized");
            }

            var viewModel = EquipmentViewModel.Create(_repositoryFactory, equipment, equipmentReservation);
            return View(viewModel);
        }