コード例 #1
0
        public async Task <ActionResult> CreateForUnregistered(CreateReservationForNonRegisteredUserViewModel model)
        {
            _logger.Info("Creating Reservation! Params: " + model.ToJson());

            if (!ModelState.IsValid)
            {
                _logger.Error("Creating Reservation Form Invalid! Errors:" + ModelState.ToJson());
                return(Json(ModelState.ToDictionary()));
            }

            try
            {
                CreateReservationDTO reservation = Mapper.Map <CreateReservationForNonRegisteredUserViewModel, CreateReservationDTO>(model);
                await ReservationsManager.CreateReservation(reservation);

                _logger.Info("Creating Reservation Successfully!");

                return(Json("STATUS_OK"));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Creating Reservation Failed!");
                throw;
            }
        }
コード例 #2
0
        public async Task <ActionResult> PayReservation(ReservationPaymentViewModel model)
        {
            _logger.Info("Paying Reservation! Params: " + model.ToJson());

            if (!ModelState.IsValid)
            {
                _logger.Error("Paying Reservation Form Invalid! Errors:" + ModelState.ToJson());
                return(Json(ModelState.ToDictionary()));
                //throw new ArgumentException("Проблем при плащане на резервацията. Опитайте отново, ако не стане свържете се с екипът ни!");
            }
            if (model.PaymentInfo.PaymentMethod.ToUpper() == "EASYPAY" && (string.IsNullOrEmpty(model.PaymentInfo.PayerName) || model.PaymentInfo.PayerName.Length > 26))
            {
                ModelState.AddModelError(nameof(model.PaymentInfo.PayerName), "Името е задължително и не трябва да превишава 26 символа");
                _logger.Error("Paying Reservation Form Invalid! Errors:" + ModelState.ToJson());

                return(Json(ModelState.ToDictionary()));
            }

            try
            {
                //Either EasyPayCode or redirect Form which have to be submited
                var paymentRedirectForm = await ReservationsManager.PayReservation(model.Id, model.IsCaparoPayed, model.PaymentInfo, model.UrlOk, model.UrlCancel);

                _logger.Info("Paying Reservation - Redirecting to External Payment provider!");

                return(Content(paymentRedirectForm));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Paying Reservation Failed!");
                throw;
            }
        }
コード例 #3
0
        public async Task <ActionResult> Create(CreateReservationViewModel model)
        {
            _logger.Info("Creating Reservation! Params: " + model.ToJson());

            if (!ModelState.IsValid)
            {
                _logger.Error("Creating Reservation Form Invalid! Errors:" + ModelState.ToJson());
                return(Json(ModelState.ToDictionary()));
            }

            //if (await UserManager.IsPhoneNumberConfirmedAsync(User.Identity.GetUserId())
            //    && await UserManager.HasPhoneNumberAsync(User.Identity.GetUserId()))
            //{
            //    return Json("Въведете и потвърдете телефонен номер тогава опитайте отново!");
            //}

            try
            {
                CreateReservationDTO reservation = Mapper.Map <CreateReservationViewModel, CreateReservationDTO>(model, o => o.Items["UserId"] = User.Identity.GetUserId());
                await ReservationsManager.CreateReservation(reservation);

                _logger.Info("Creating Reservation Successfully!");

                return(Json("STATUS_OK"));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Creating Reservation Failed!");
                throw;
            }
        }
コード例 #4
0
ファイル: CartsManager.cs プロジェクト: ula0156/onlineShop
 public CartsManager(IStocksProvider stocksProvider, IProductsProvider productsProvider, IReservationsProvider reservationsProvider, ICartsProvider cartProvider)
 {
     _stocksProvider       = stocksProvider;
     _productsProvider     = productsProvider;
     _reservationsProvider = reservationsProvider;
     _reservationsManager  = new ReservationsManager(_stocksProvider, _reservationsProvider);
     _cartsProvider        = cartProvider;
 }
コード例 #5
0
        public async Task <ActionResult> GetOwnReservations()
        {
            var userId = User.Identity.GetUserId();
            List <ListReservationViewModel> reservations = await ReservationsManager.ListUserReservations(userId);

            return(View("MyReservations", reservations));

            //return Json(reservations, JsonRequestBehavior.AllowGet);
        }
コード例 #6
0
        public async Task <ActionResult> Details(int?reservationId)
        {
            if (reservationId == 0 || reservationId == null)
            {
                return(HttpNotFound());
            }

            var reservation = await ReservationsManager.GetReservation((int)reservationId, User.Identity.GetUserId());

            return(View(reservation));
        }
コード例 #7
0
        private TablesViewModel GetReserveTablesViewData()
        {
            List <SelectListItem> selectOptions = new List <SelectListItem>();

            var freeTables = ReservationsManager.GetFreeTables();

            freeTables.ForEach(x => selectOptions.Add(new SelectListItem {
                Text = x.Name, Value = x.PoolTableID.ToString()
            }));

            return(new TablesViewModel(0, DateTime.Now, selectOptions));
        }
コード例 #8
0
        public ActionResult ReserveTable(TablesViewModel tablesView)
        {
            if (tablesView.SelectedDate == null)
            {
                ModelState.AddModelError("", "Date cannot be null");
                return(View(GetReserveTablesViewData()));
            }

            ReservationsManager.CreateReservation(tablesView);

            return(View(GetReserveTablesViewData()));
        }
コード例 #9
0
ファイル: Application.cs プロジェクト: ula0156/onlineShop
        public static void Run()
        {
            // Create providers.
            IProductsProvider     productsProvider;
            IReservationsProvider reservationsProvider;
            IStocksProvider       stocksProvider;

            if (_useInMemoryDatabase)
            {
                CreateInMemoryProviders(out productsProvider, out reservationsProvider, out stocksProvider);
            }
            else
            {
                CreateDatabaseProviders(out productsProvider, out reservationsProvider, out stocksProvider);
            }

            // Create additional objects on top of the database.
            var productsManager = new ProductsManager(productsProvider, stocksProvider);

            // Initialize the database so it is not empty when qwe launch the application.
            if (_initializeDatabase)
            {
                DatabaseInitializer databaseInitializer = new DatabaseInitializer();
                databaseInitializer.InitializeDatabase(productsManager);
            }

            // has methods to act on databases through productsProvider and stocksProvider
            var reservationsManager = new ReservationsManager(stocksProvider, reservationsProvider);

            Cart                       cart    = new Cart(productsProvider, reservationsManager);
            NavigationData             navData = new NavigationData();
            ExpiredReservationsManager expiredReservationsManager = new ExpiredReservationsManager(reservationsProvider);

            navData.ProductsReader = productsProvider;
            navData.StocksReader   = stocksProvider;
            navData.Cart           = cart;

            IPage currentPage = new MainPage();

            while (currentPage != null)
            {
                string menu = currentPage.OnNavigatedTo(navData);
                Console.WriteLine(menu);

                string userInput = Console.ReadLine();
                var    newPage   = currentPage.OnUserInput(userInput);
                navData.PreviousPages.Push(currentPage);
                currentPage = newPage;

                Console.Clear();
            }
        }
コード例 #10
0
        public async Task <ActionResult> Delete(int?reservationId)
        {
            _logger.Info("Deleting Reservation! ReservationId: " + reservationId);

            if (reservationId == 0 || reservationId == null)
            {
                _logger.Warn("Deleting Reservation Not Found!");
                return(HttpNotFound());
            }
            try
            {
                await ReservationsManager.DeleteReservation((int)reservationId, User.Identity.GetUserId());

                _logger.Info("Deleting Reservation Successfully!");

                return(Json("STATUS_OK", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Deleting Reservation Failed!");
                throw;
            }
        }
コード例 #11
0
        public async Task <ActionResult> GetReservations([Required(ErrorMessage = "Изберете имот!")] int propertyId)
        {
            var reservations = await ReservationsManager.ListReservations(propertyId);

            return(Json(reservations, JsonRequestBehavior.AllowGet));
        }
コード例 #12
0
        public ActionResult Reservations()
        {
            var reservations = ReservationsManager.GetReservations().OrderBy(o => o.Time);

            return(View(reservations));
        }
コード例 #13
0
 public ReservationsController(DbAppContext context, IMapper mapper, ReservationsManager reservationsManager, UsersManager usersManager)
 {
     _mapper = mapper;
     _reservationsManager = reservationsManager;
     _usersManager        = usersManager;
 }
コード例 #14
0
ファイル: Global.asax.cs プロジェクト: ula0156/onlineShop
 private void StartMonitors()
 {
     ReservationsManager        _reservationsManager        = new ReservationsManager(ProvidersFactory.GetStocksProvider(), ProvidersFactory.GetReservationsProvider());
     ExpiredReservationsManager _expiredReservationsManager = new ExpiredReservationsManager(ProvidersFactory.GetReservationsProvider());
 }