public IActionResult Create(CreateOrderBindingModel model)
        {
            if (this.ModelState.IsValid)
            {
                if (!this.eventsService.EventExists(model.EventId))
                {
                    return(this.RedirectToAction("All", "Events"));
                }

                string userId = this.userManager.GetUserId(this.User);

                var order = new Order
                {
                    CustomerId   = userId,
                    EventId      = model.EventId,
                    TicketsCount = model.Tickets
                };

                this.orderService.CreateOrder(order);

                return(this.RedirectToAction("MyEvents", "Events"));
            }

            return(this.RedirectToAction("All", "Events"));
        }
        public IActionResult Create(CreateOrderBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.RedirectToAction("All", "Events"));
            }

            Event @event = this.eventsService.GetEventById(model.EventId);

            if (@event == null)
            {
                return(this.RedirectToAction("All", "Events"));
            }

            int availableTickets = @event.TotalTickets;

            if (availableTickets < model.TicketsCount)
            {
                this.TempData["Error"] =
                    $"There are not enough tickets! The number of available tickets is {availableTickets}.";

                return(this.RedirectToAction("All", "Events"));
            }

            string userId = this.userManager.GetUserId(this.User);

            Order order = this.mapper.Map <Order>(model);

            order.CustomerId = userId;

            this.orderService.CreateOrder(order);

            return(this.RedirectToAction("MyEvents", "Events"));
        }
 public void CreateOrder(CreateOrderBindingModel model)
 {
     _orderStorage.Insert(new OrderBindingModel
     {
         ProductId  = model.ProductId,
         Count      = model.Count,
         Sum        = model.Sum,
         DateCreate = DateTime.Now,
         Status     = OrderStatus.Принят
     });
 }
Пример #4
0
 public void CreateOrder(CreateOrderBindingModel model)
 {
     orderLogic.CreateOrUpdate(new OrderBindingModel
     {
         BouquetId  = model.BouquetId,
         ClientId   = model.ClientId,
         Delivery   = model.Delivery,
         Count      = model.Count,
         Sum        = model.Sum,
         DateCreate = DateTime.Now,
         Status     = OrderStatus.Принят
     });
 }
Пример #5
0
        public IActionResult OrderTickets(CreateOrderBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.RedirectToAction("All", "Events", model));
            }

            try
            {
                this.ordersService.CreateOrder(model);
            }
            catch (Exception e)
            {
                var errorModel = new NotEnoughTicketsErrorViewModel();
                errorModel.TotalTickets = e.Data["Tickets"].ToString();
                return(this.RedirectToAction("NotEnoughTicketsError", errorModel));
            }

            return(this.RedirectToAction("My", "Events"));
        }
Пример #6
0
 public void CreateOrder(CreateOrderBindingModel model)
 {
     orderLogic.CreateOrUpdate(new OrderBindingModel
     {
         KomlectId  = model.KomlectId,
         ClientId   = model.ClientId,
         Count      = model.Count,
         Sum        = model.Sum,
         DateCreate = DateTime.Now,
         Status     = OrderStatus.Принят
     });
     MailLogic.MailSendAsync(new MailSendInfo
     {
         MailAddress = clientLogic.Read(new ClientBindingModel {
             Id = model.ClientId
         })?[0]?.Email,
         Subject = $"Новый заказ",
         Text    = $"Заказ принят."
     });
 }
Пример #7
0
        public void CreateOrder(CreateOrderBindingModel model)
        {
            var order    = this.mapper.Map <EventuresOrder>(model);
            var customer = this.db.Users.FirstOrDefault(u => u.UserName == model.CustomerName);
            var @event   = this.db.Events.FirstOrDefault(e => e.Id == model.EventId);

            if (@event.TotalTickets < model.Tickets)
            {
                var ex = new ArgumentOutOfRangeException();
                ex.Data["Tickets"] = @event.TotalTickets.ToString();
                throw ex;
            }

            order.CutomerId = customer.Id;
            order.Customer  = customer;
            order.Event     = @event;
            order.OrderedOn = DateTime.UtcNow;

            @event.TotalTickets -= model.Tickets;

            this.db.Orders.Add(order);
            this.db.SaveChanges();
        }
 public void CreateOrder(CreateOrderBindingModel model)
 {
     try
     {
         Random rnd          = new Random();
         var    dishes       = dishLogic.Read(null);
         var    firstDishes  = dishes.Where(x => x.DishType == DishType.Первое).ToList();
         var    secondDishes = dishes.Where(x => x.DishType == DishType.Второе).ToList();
         var    desserts     = dishes.Where(x => x.DishType == DishType.Десерт).ToList();
         var    drinks       = dishes.Where(x => x.DishType == DishType.Напиток).ToList();
         if (firstDishes.Count() == 0 || secondDishes.Count() == 0 || desserts.Count() == 0 || drinks.Count() == 0)
         {
             throw new Exception("Отсутствуют 4 разных вида блюд");
         }
         int indexFD      = rnd.Next(0, firstDishes.Count());
         int indexSD      = rnd.Next(0, secondDishes.Count());
         int indexDessert = rnd.Next(0, desserts.Count());
         int indexDrink   = rnd.Next(0, drinks.Count());
         orderLogic.CreateOrUpdate(new OrderBindingModel
         {
             ClientId    = model.ClientId,
             OrderDishes = new Dictionary <int, (string, decimal)> {
                 { firstDishes[indexFD].Id.Value, (firstDishes[indexFD].DishName, firstDishes[indexFD].Price) },
                 { secondDishes[indexSD].Id.Value, (secondDishes[indexSD].DishName, secondDishes[indexSD].Price) },
 public CartViewModel()
 {
     Price = 0;
     CreateOrderBindingModel = new CreateOrderBindingModel();
 }
Пример #10
0
 public void CreateOrder(CreateOrderBindingModel model) => _main.CreateOrder(model);