Beispiel #1
0
        public void AddOrderDish(OrderDishDTO orderDishDTO)
        {
            var orderDish = mapper.Map <OrderDishDTO, OrderDish>(orderDishDTO);

            db.OrderDishes.Add(orderDish);
            db.Save();
        }
        public string MakeOrder(IEnumerable <DishForOrderModel> dishesForOrderModel)
        {
            if (ModelState.IsValid)
            {
                if (dishesForOrderModel.Count() == 0 || dishesForOrderModel.All(d => d.Count == 0))
                {
                    return("Нужно быбрать минимум одно блюдо");
                }
                int userId = -1;
                if (User.Identities.Any(u => u.HasClaim(c => c.Type == ClaimTypes.Role && c.Value == "Administrator")))
                {
                    if (Request.Form.TryGetValue("userIdForAdmin", out var userIdForAdmin))
                    {
                        userId = int.Parse(userIdForAdmin);
                    }
                    else
                    {
                        return("Пользователь не найден");
                    }
                }
                else
                {
                    userId = int.Parse(User.Identity.Name);
                }
                var orderDTO = new OrderDTO
                {
                    CreateDate = DateTime.Now,
                    UserId     = userId
                };
                var id = orderService.MakeOrder(orderDTO);

                foreach (var item in dishesForOrderModel)
                {
                    if (item.Count != 0)
                    {
                        var orderDishDTO = new OrderDishDTO
                        {
                            OrderId = id,
                            DishId  = item.Id,
                            Count   = item.Count
                        };
                        orderService.AddOrderDish(orderDishDTO);
                    }
                }
                return("Заказ выполнен.");
            }
            return("Ошибка при проверке данных");
        }