public async Task <CarrinhoViewModel> GetOrCreateCarrinhoForUser(string usuarioNome) { var carrinhoSpec = new CarrinhoComItemsSpecification(usuarioNome); var carrinho = (await _carrinhoRepository.ListAsync(carrinhoSpec)).FirstOrDefault(); if (carrinho == null) { return(await CreateCarrinhoForUser(usuarioNome)); } return(CreateViewModelFromCarrinho(carrinho)); }
public async Task TransferCarrinhoAsync(string anonimosId, string usuarioNome) { Guard.Against.NullOrEmpty(anonimosId, nameof(anonimosId)); Guard.Against.NullOrEmpty(usuarioNome, nameof(usuarioNome)); var carrinhoSpec = new CarrinhoComItemsSpecification(anonimosId); var carrinho = (await _carrinhoRepository.ListAsync(carrinhoSpec)).FirstOrDefault(); if (carrinho == null) { return; } carrinho.CompraId = usuarioNome; await _carrinhoRepository.UpdateAsync(carrinho); }
public async Task <int> GetCarrinhoItemCountAsync(string usuarioNome) { Guard.Against.NullOrEmpty(usuarioNome, nameof(usuarioNome)); var carrinhoSpec = new CarrinhoComItemsSpecification(usuarioNome); var carrinho = (await _carrinhoRepository.ListAsync(carrinhoSpec)).FirstOrDefault(); if (carrinho == null) { _logger.LogInformation($"No basket found for {usuarioNome}"); return(0); } int count = carrinho.Items.Sum(i => i.Quantidade); _logger.LogInformation($"Basket for {usuarioNome} has {count} items."); return(count); }