public ActionResult Create(ApplicationUser user, ReservationDateRangeViewModel reservationDateRangeViewModel) { reservationDateRangeViewModel.UserType = user.Type; CheckDateRangeModel(reservationDateRangeViewModel, reservationDateRangeViewModel.StartDate, reservationDateRangeViewModel.EndDate, false); var materials = user.WishList.Materials.Select(m => new ReservationDetailSelectionViewModel( m, m.GetAvailableIdentifiersCount(reservationDateRangeViewModel.StartDate, reservationDateRangeViewModel.EndDate, user.Type), 0)); var materialsPicker = new NewReservationMaterialsViewModel(materials, false); var wrapper = new NewReservationViewModel(reservationDateRangeViewModel, materialsPicker); return(View(wrapper)); }
public async Task <ActionResult> CreateReservation(ApplicationUser user, ReservationDateRangeViewModel reservationDateRangeViewModel, NewReservationMaterialsViewModel reservationMaterialsViewModel) { var requestedMaterials = reservationMaterialsViewModel.Materials .ToDictionary(detail => _materialRepository.FindById(detail.Material.Id), detail => detail.RequestedAmount); user.CreateReservation(reservationDateRangeViewModel.StartDate, reservationDateRangeViewModel.EndDate, requestedMaterials); _reservationRepository.SaveChanges(); await MailService.SendMailAsync(user.Reservations.Last().ReservationBody, "Reservering IIM", user.Email); return(RedirectToAction("Index")); }