Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
            }
        }