예제 #1
0
        public async Task<ActionResult> Book(ReservationViewModel model)
        {
            if (model.ActivityPackage != null && model.User != null && !string.IsNullOrEmpty(model.User.Id) && (model.ActivityPackage.Id > 0))
            {
                var user = CurrentUser;
                var reservation = model.ToModel(CurrentUser);
                reservation.Status = Status.Pending.ToString();
                ReservationContext.Save(reservation);

                var supplier = SupplierContext.GetById(model.ActivityPackage.SupplierId);
                await UserManager.SendEmailAsync(supplier.AspNetUserId, "A reservation has been made", "Please confirm this reservation made by " + CurrentUser.FirstName + " " + CurrentUser.LastName + "!");
                TempData["message"] = "You have succesfully booked this activity!";
                return RedirectToAction("Details", new { reservationId = reservation.Id });
            }
            return View(model);
        }
예제 #2
0
        public static ReservationViewModel ToViewModel(this Reservation reservation)
        {
            var user = ServiceLocator.Current.Resolve<IApplicationDbContext>().Users.Find(reservation.UserId);
            var activityPackage = ServiceLocator.Current.Resolve<IApplicationDbContext<ActivityPackage, int>>().GetById(reservation.ActivityPackageId);

            var vm = new ReservationViewModel
            {
                Id = reservation.Id,
                CreateDate = DateTimeFormats.FormatDate(reservation.AuditInfo.CreationDate),
                CreatedBy = UserProfileNames.ById(reservation.AuditInfo.CreatedBy),
                UpdateDate = DateTimeFormats.FormatDate(reservation.AuditInfo.UpdateDate),
                UpdatedBy = string.IsNullOrEmpty(reservation.AuditInfo.UpdatedBy) ? string.Empty : UserProfileNames.ById(reservation.AuditInfo.UpdatedBy),
                ActivityPackage = activityPackage.ToViewModel(),
                User = user.ToViewModel(),
                Message = reservation.Message,
                Statuses = StatusProvider.Statuses.Select(p => new SelectListItem { Text = p.Value, Value = p.Key }).ToList(),
                Status = Activities.Resources.Shared.Enums.ResourceManager.GetString(reservation.Status)
            };

            return vm;
        }