public async Task <IActionResult> Post( [ FromBody, Bind ( nameof(ProviderCreateModel.Name), nameof(ProviderCreateModel.BaseApiUrl) ) ] ProviderCreateModel providerCreateModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var provider = new Provider(Guid.NewGuid(), providerCreateModel.Name, providerCreateModel.BaseApiUrl); scvContext.Add(provider); await scvContext.SaveChangesAsync(); providerCreateModel.Id = provider.Id; return(Created($"providers/{providerCreateModel.Id}", providerCreateModel)); }
public async Task <IActionResult> Post([FromBody] AddToCartModel addToCartModel) { var order = await scvContext.Orders .Include(o => o.OrderItems) .ThenInclude(o => o.Product) .Where(o => o.UserId == addToCartModel.UserId && o.OrderStatus == OrderStatus.Open) .Cacheable() .SingleOrDefaultAsync(); if (order == null) { order = new Order ( Guid.NewGuid(), OrderStatus.Open, addToCartModel.UserId ); scvContext.Orders.Add(order); } var product = await scvContext.Products .Where(p => p.Id == addToCartModel.ProductId) .Cacheable() .SingleAsync(); var orderItem = new OrderItem(Guid.NewGuid(), 1, product.SellPrice, order.Id, product.Id); scvContext.OrderItems.Add(orderItem); await scvContext.SaveChangesAsync(); var cartItemModel = new CartItemModel { Id = orderItem.Id, ProductName = product.Name, Quantity = orderItem.Quantity, Price = orderItem.Price }; return(Ok(cartItemModel)); }
public async Task SellProductsAsync(Order order) { foreach (var orderItem in order.OrderItems) { var product = await scvContext.Products .Where(p => p.Id == orderItem.ProductId) .Cacheable() .SingleAsync(); product.Quantity -= orderItem.Quantity; scvContext.Products.Update(product); await scvContext.SaveChangesAsync(); } }