Пример #1
0
        public async Task <PurchaseHistory> BuyCart(int accountid, List <PurchaseItem> cookieList)
        {
            using (CookieShopDbContext context = _contextFactory.CreateDbContext())
            {
                var account = await context.Accounts.FirstAsync((e) => e.Id == accountid);

                // var cookiedb  = (await context.Cookies.FirstAsync((e) => e.Id == cookie.Id));

                var boughtCookies = new PurchaseHistory()
                {
                    //Cookie = cookiedb,
                    //Amount = amount,
                    Items         = cookieList,
                    AccountId     = accountid,
                    DateProcessed = DateTime.Now,
                    IsPurchase    = true
                };
                var result = await context.PurchaseHistory.AddAsync(boughtCookies);

                foreach (var cookie in cookieList)
                {
                    var cookiedb = (await context.Cookies.FirstAsync((e) => e.Id == cookie.CookieId));
                    var stock    = await context.Stocks.FirstOrDefaultAsync((e) => e.Cookie.Id == cookie.CookieId);

                    stock.Amount--;
                    account.Balance -= cookiedb.Price * cookie.Amount;
                }

                context.SaveChanges();
                return(result.Entity);
            }
            //throw new NotImplementedException();
        }
Пример #2
0
        public async Task <Cookie> UpdateStock(int cookieId, int amount)
        {
            using (CookieShopDbContext context = _contextFactory.CreateDbContext())
            {
                var stock = await context.Stocks.FirstOrDefaultAsync(s => s.Cookie.Id == cookieId);

                stock.Amount = amount;
                context.SaveChanges();
                return(await context.Cookies
                       .Include(c => c.Stock)
                       .Include(c => c.AccountsIsFavouredBy)
                       .FirstOrDefaultAsync(s => s.Id == cookieId));
            }
        }
Пример #3
0
        public async Task <CookieRating> AddRatings(int userId, int cookieId, int rating)
        {
            var cookieRating = new CookieRating()
            {
                CookieID = cookieId, UserID = userId, Rating = rating
            };

            using (CookieShopDbContext context = _contextFactory.CreateDbContext())
            {
                var newRating = await context.CookieRatings.AddAsync(cookieRating);

                context.SaveChanges();
                return(newRating.Entity);
            }
        }
Пример #4
0
        public async Task <Account> RemoveFromFavorites(int accountid, Cookie cookie)
        {
            var favoriteCookie = new FavoriteCookies()
            {
                CookieID = cookie.Id, AccountID = accountid
            };

            using (CookieShopDbContext context = _contextFactory.CreateDbContext())
            {
                context.FavoriteCookies.Remove(favoriteCookie);
                context.SaveChanges();
                return(await context.Accounts
                       .Include(a => a.FavoriteCookies)
                       .FirstOrDefaultAsync((e) => e.Id == accountid));
            }
        }