Пример #1
0
        private ORDER BuildOrder(RequestOrderDto order)
        {
            var NewOrderStatus = _unitOfWork.Order.GetOrderStatus("New").Result;

            var result = new ORDER
            {
                OrderInfo    = order.OrderInfo,
                OrderRecords = new List <ORDERRECORD>(),
                UserId       = order.UserId,
                OrderStatus  = NewOrderStatus,
            };

            foreach (var item in order.Items)
            {
                var product = _unitOfWork.Product.GetAsync(item).Result;

                if (product == null)
                {
                    throw new Exception($"Product {item} not found");
                }

                result.OrderRecords.Add(
                    new ORDERRECORD
                {
                    ItemName  = product.NAME,
                    Price     = product.EXTRA_PRICE_ACTIVE ? product.EXTRA_PRICE : product.PRICE,
                    ProductId = product.ID
                });
            }
            ;



            return(result);
        }
Пример #2
0
        public OrderDto CreateOrder(RequestOrderDto requestOrder)
        {
            ValidateOrderInput(requestOrder);

            var order    = BuildOrder(requestOrder);
            var response = _unitOfWork.Order.CreateOrderAsync(order);

            var result = ConvertOrder(response.Result);

            return(result);
        }
Пример #3
0
        public async Task <IActionResult> CreateOrder([FromBody] RequestOrderDto requestOrder)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            requestOrder.UserId = user.Id;
            OrderDto order;


            try
            {
                order = _service.CreateOrder(requestOrder);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok(order));
        }
Пример #4
0
        private void ValidateOrderInput(RequestOrderDto order)
        {
            if (order == null)
            {
                throw new Exception("Bad input");
            }

            if (order.Items == null)
            {
                throw new Exception("Empty order");
            }

            if (order.Items.Count < 1)
            {
                throw new Exception("Empty order");
            }

            if (String.IsNullOrEmpty(order.OrderInfo) || order.OrderInfo.Length < 4)
            {
                throw new Exception("Order info not set.");
            }
        }