public async Task <ActionResult <Order> > PostOrder([FromBody] CartCheckoutModel cartCheckoutModel)
        {
            // bool isModelValid = !TryValidateModel(cartCheckoutModel, nameof(CartCheckoutModel));
            if (!ModelState.IsValid)
            {
                return(BadRequest(new NotValidDataResponse()));
            }
            var makeOrdersResponseResult = await new OrdersService(_context, cartCheckoutModel).ProcessOrderRequest();

            if (makeOrdersResponseResult.status)
            {
                return(Ok(makeOrdersResponseResult));
            }
            return(BadRequest(makeOrdersResponseResult));
        }
Example #2
0
 private async Task <bool> RegisterOrdersForCustomer(CartCheckoutModel cartCheckoutModel, Customer customer)
 {
     foreach (var orderModel in cartCheckoutModel.orders)
     {
         var product = _context.Products.Find(orderModel.productId);
         product.ordersCount   += 1;
         product.consumedCount += orderModel.quantity;
         _context.Entry(product).Property(p => p.ordersCount).IsModified   = true;
         _context.Entry(product).Property(p => p.consumedCount).IsModified = true;
         var newOrder = new Order
         {
             id         = Guid.NewGuid(),
             address    = cartCheckoutModel.customer.address,
             customerId = customer.id,
             productId  = orderModel.productId,
             quantity   = orderModel.quantity,
             sizeIndex  = orderModel.sizeIndex
         };
         _context.Orders.Add(newOrder);
     }
     return((await _context.SaveChangesAsync()) > 0);
 }
Example #3
0
 public OrdersService(Atlob_dent_Context context, CartCheckoutModel cartCheckoutModel)
 {
     _context           = context;
     _cartCheckoutModel = cartCheckoutModel;
 }