public async Task <int> Clear() { var userId = User.GetId(); var basketId = new BasketId(userId); return(await _basket.Clear(basketId)); }
public async Task <int> Add(ProductModel product) { var userId = User.GetId(); var basketId = new BasketId(userId); return(await _basket.AddProduct(basketId, new BasketProduct(product.Id, product.Title, product.Price))); }
public async Task <int> Remove(Guid id) { var userId = User.GetId(); var basketId = new BasketId(userId); return(await _basket.RemoveProduct(basketId, id)); }
private void ConsumerHasBasketWithItems() { _basketId = new BasketId( Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); _itemReference = Guid.NewGuid().ToString(); }
public async Task <BasketModel> Get() { var userId = User.GetId(); var id = new BasketId(userId); var basket = await _basket.Get(id); return(new BasketModel(basket)); }
public void Do(BasketId basketId, string productReference) { _basketRepository.AddItem(basketId.ConsumerId, basketId.Id, productReference, 1); }
public void Do(BasketId basketId) { BasketDTO basket = _basketRepository.Get(basketId.ConsumerId, basketId.Id); if (basket != null) { _basketRepository.Delete(basketId.ConsumerId, basketId.Id); } }
public void Do(BasketId basketId, string itemReference, int quantity) { if (quantity <= 0) { _basketRepository.DeleteItem(basketId.Id, itemReference); } else { _basketRepository.UpdateItem(basketId.Id, itemReference, quantity); } }
public IActionResult PostItemBasket(string consumerId, string basketId, [FromBody] AddItemResource itemResource) { BasketId id = new BasketId(basketId, consumerId); BasketDTO basket = _basketQuery.Get(id); if (basket == null) { return(new BadRequestResult()); } _addItemToBasketCommand.Do(id, itemResource.Reference); return(GetBasket(consumerId, basketId)); }
public async Task <int> AddProduct(BasketId id, BasketProduct basketProduct) { Validator.Begin(basketProduct, nameof(basketProduct)) .NotDefault() .ThrowApiException(nameof(BasketService), nameof(AddProduct)); var basket = await _repository.Get(id); if (basket == null) { basket = new Basket(id, new EmptyBasketState(_config.GetMaxBasketSize())); } basket.Add(basketProduct); await _repository.Save(basket); return(await _uow.SaveAsync()); }
public IActionResult PutItemBasket(string consumerId, string basketId, string itemId, [FromBody] UpdateItemQuantityResource resource) { BasketId id = new BasketId(basketId, consumerId); BasketDTO basket = _basketQuery.Get(id); if (basket == null) { return(new BadRequestResult()); } _updateItemQuantityCommand.Do(id, itemId, resource.Quantity); return(GetBasket(consumerId, basketId)); }
public async Task <Guid> CreateAndClearBasket(CreateOrderShortModel model) { using (var tran = await _context.Database.BeginTransactionAsync(IsolationLevel.ReadCommitted)) { var buyer = User.GetId(); var bid = new BasketId(buyer); var basket = await _basket.Get(bid); await _basket.Clear(bid); var order = new Order( basket.Lines.Select(l => new OrderLine(new OrderProduct(l.Product.Id, l.Product.Title, l.Product.Price), l.Quantity)), new Client(buyer), new Address(model.Address) ); var id = await _service.Create(order); await tran.CommitAsync(); return(id.Value); } }
public async Task <Basket> Get(BasketId id) { var basket = await _context.Baskets.Include(b => b.Lines).ThenInclude(l => l.Product).FirstOrDefaultAsync(b => b.Id == id.Value); return(basket?.ToBasket(_config.MaxBasketSize)); }
public BasketDTO Get(BasketId basketId) { return(_basketRepository.Get(basketId.ConsumerId, basketId.Id)); }
private void HaveBasket() { _basketId = new BasketId( Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); }
public Basket ToBasket(BasketId id, int maxSize) => new Basket(id, BasketState.Create(Lines.Select(l => l.ToBasketLine()), maxSize));
public async Task <int> Clear(BasketId id) { if (id.Equals(default))