public async Task AddPartToCart(PartFullInfo partFullInfo, Account account, int amount = 1) { using (CarPartDbContext context = _contextFactory.CreateDbContext()) { if (partFullInfo == null) { throw new Exception("Вы не выбрали запчасть"); } Cart cart = await context.Carts .FirstOrDefaultAsync(x => x.PartId == partFullInfo.PartId && x.ProviderId == partFullInfo.ProviderId && x.AccountId == account.Id); if (cart == null) { await Create(new Cart() { Amount = amount, CarId = partFullInfo.CarId, PartId = partFullInfo.PartId, ProviderId = partFullInfo.ProviderId, AccountId = account.Id }); } else { cart.Amount += amount; context.Carts.Update(cart); } await context.SaveChangesAsync(); } }
public async Task <IEnumerable <PartFullInfo> > GetAllPartsInView(Account account) { using (CarPartDbContext context = _contextFactory.CreateDbContext()) { account.Carts = await context.Carts.Where(x => x.AccountId == account.Id).ToListAsync(); List <PartFullInfo> parts = new List <PartFullInfo>(await _partService.GetAllPartsForView()); List <PartFullInfo> result = new List <PartFullInfo>(); foreach (var p in account.Carts) { //проверить!!!! PartFullInfo part = parts.FirstOrDefault(c => c.PartId == p.PartId && c.CarId == p.CarId && c.ProviderId == p.ProviderId); part.ProviderPartAmount = p.Amount; result.Add(part); } return(result); } }