public Basket Post([FromBody] AddBasketItem basketItem) { var buyerId = _httpContextAccessor.HttpContext.Request.Headers["#BuyerId"].ToString(); var product = _shopOnlineDbContext.Products.FirstOrDefault(p => p.Id == basketItem.ProductId); if (product == null) { return(null); } var basket = _shopOnlineDbContext.Baskets.FirstOrDefault(b => b.BuyerId == buyerId && !b.IsDeleted); if (basket != null) { basket.Items.Add(new BasketItem { Price = product.Price, Quantity = basketItem.Quantity, Name = product.Name }); basket.Total += product.Price * basketItem.Quantity; _shopOnlineDbContext.SaveChanges(); return(basket); } var newBasket = new Basket { BuyerId = buyerId, Items = new List <BasketItem> { new BasketItem { Price = product.Price, Quantity = basketItem.Quantity, Name = product.Name } }, Total = basketItem.Quantity * product.Price }; _shopOnlineDbContext.Baskets.Add(newBasket); _shopOnlineDbContext.SaveChanges(); return(newBasket); }
public ActionResult <Basket> Post([FromBody] AddBasketItem basketItem) { var serviceResult = _basketService.AddBasketItem(basketItem.ProductId, basketItem.Quantity); if (serviceResult.ResponseCode != ResponseCode.Success) { return(BadRequest(serviceResult.Error)); } var result = new BasketDto { Id = serviceResult.Result.Id, BuyerId = serviceResult.Result.BuyerId, Total = serviceResult.Result.Total, Items = serviceResult.Result.Items.Select(x => new BasketItemDto { Price = x.Price, Quantity = x.Quantity, Id = x.Id, Name = x.Name }) }; return(Ok(result)); }