Exemplo n.º 1
0
        public async Task <IActionResult> CreateAsync(CartModelItem model)
        {
            var token = HttpContext.Request.Headers
                        .Where(x => x.Key == JwtConstants.RefreshToken)
                        .Select(x => x.Value).FirstOrDefault();
            var userId = _jwtHelper.GetIdFromToken(token);
            var result = await _orderService.MakeOrderAsync(model, userId);

            return(Ok(result));
        }
Exemplo n.º 2
0
        public static Order MapCartModelToEntity(CartModelItem cartModel, long userId, long paymentId)
        {
            var model = new Order()
            {
                UserId       = userId,
                PaymentId    = paymentId,
                CreationDate = DateTime.Now,
                Description  = cartModel.Description
            };

            return(model);
        }
Exemplo n.º 3
0
        private async Task <BaseModel> CreateAsync(CartModelItem model, long userId)
        {
            var paymentId = await GetPaymentIdAsync(model.TransactionId);

            var order    = OrderMapper.MapCartModelToEntity(model, userId, paymentId);
            var response = new OrdersModel();

            if (model == null)
            {
                response.Errors.Add(ErrorConstants.ModelIsNull);
                return(response);
            }
            var result = await _orderRepository.CreateAsync(order);

            if (!result)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToCreateOrder);
            }
            return(response);
        }
Exemplo n.º 4
0
        private async Task <OrderItemModelItem> CreateOrderItemsAsync(CartModelItem model)
        {
            var paymentId = await GetPaymentIdAsync(model.TransactionId);

            var orderId = await GetOrderIdAsync(paymentId);

            var response = new OrderItemModelItem();
            var items    = new List <OrderItem>();

            foreach (var item in model.OrderItems)
            {
                var orderItem = OrderItemMapper.MapModelToEntity(item);
                orderItem.OrderId = orderId;
                items.Add(orderItem);
            }
            var result = await _orderItemRepository.CreateRangeAsync(items);

            if (!result)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToCreateOrderItem);
            }
            response.OrderId = orderId;
            return(response);
        }
Exemplo n.º 5
0
        public async Task <OrdersModelItem> MakeOrderAsync(CartModelItem model, long userId)
        {
            var response = new OrdersModelItem();
            var result   = await CreatePaymentAsync(model.TransactionId);

            if (result.Errors.Any())
            {
                return((OrdersModelItem)result);
            }
            result = await CreateAsync(model, userId);

            if (result.Errors.Any())
            {
                return((OrdersModelItem)result);
            }
            var createItemResult = await CreateOrderItemsAsync(model);

            if (result.Errors.Any())
            {
                return((OrdersModelItem)result);
            }
            response.Id = createItemResult.OrderId;
            return(response);
        }