Example #1
0
        /// <summary>
        /// Deletes specified record of brewery
        /// </summary>
        /// <param name="id">Id of record</param>
        /// <returns>Bool</returns>
        public async Task <bool> DeleteAsync(int?id)
        {
            try
            {
                var brewery = await _context.Breweries.Include(b => b.Beers).FirstAsync(b => b.ID == id)
                              ?? throw new ArgumentNullException("Brewery not found.");

                brewery.IsDeleted = true;
                brewery.DeletedOn = brewery.ModifiedOn = DateTime.UtcNow;

                foreach (var beer in brewery.Beers)
                {
                    var newBeerService = new BeerService(this._context);
                    await newBeerService.DeleteAsync(beer.ID);
                }
                _context.Breweries.Update(brewery);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #2
0
        /// <summary>
        /// Deletes specified record of beer style
        /// </summary>
        /// <param name="id">Id of record</param>
        /// <returns>Bool</returns>
        public async Task <bool> DeleteAsync(int?id)
        {
            try
            {
                var beerStyle = await this._context.BeerStyles.FindAsync(id)
                                ?? throw new ArgumentNullException("Style not found.");

                beerStyle.IsDeleted  = true;
                beerStyle.ModifiedOn = beerStyle.DeletedOn = DateTime.UtcNow;
                var beersOfStyle = await _context.Beers.ToListAsync();

                foreach (var beer in beersOfStyle)
                {
                    var newBeerService = new BeerService(this._context);
                    await newBeerService.DeleteAsync(beer.ID);
                }
                this._context.Update(beerStyle);
                await this._context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public void BeerService_RemoveExistingBeer_DeleteBeer()
        {
            string brewery = "Zeppelin Brews";
            string beerName = "Hammer of the Gods";

            IRepository<Beer> repository = new CouchbaseRepository<Beer>();
            var beerService = new BeerService(repository);

            // Insert single beer
            var newBeer = new Beer
            {
                Name = beerName,
                Description = "This beer packs a wallop!",
                Brewery = brewery,
                ABV = 15
            };
            beerService.InsertBeer(newBeer);

            var beer = beerService.GetBeer(brewery, beerName);
            Assert.IsNotNull(beer);

            beerService.RemoveBeer(brewery, beerName);
            beer = beerService.GetBeer(brewery, beerName);
            Assert.IsNull(beer);
        }
        public void BeerService_ValidBeerRequested_ReturnBeer()
        {
            string brewery = "Flying Pig Brewery";
            string beerName = "Sucking on Wind";

            IRepository<Beer> repository = new CouchbaseRepository<Beer>();
            var beerService = new BeerService(repository);

            var beer = beerService.GetBeer(brewery, beerName);
            Assert.IsNotNull(beer);
        }
        public void BeerService_InvalidBeerRequested_ReturnNull()
        {
            IRepository<Beer> repository = new CouchbaseRepository<Beer>();
            var beerService = new BeerService(repository);

            string brewery = "Kool Aid";
            string name = "Grape";

            var beer = beerService.GetBeer(brewery, name);
            Assert.IsNull(beer);
        }
        public void Setup()
        {
            IRepository<Beer> repository = new CouchbaseRepository<Beer>();
            var beerService = new BeerService(repository);

            // Insert single beer
            var beer = new Beer
            {
                Name = "Sucking on Wind",
                Description = "A perfect beer to imbibe after a race",
                Brewery = "Flying Pig Brewery",
                ABV = 10
            };

            beerService.InsertBeer(beer);

            // Insert multiple beers
            var beers = new List<Beer>();
            var beer1 = new Beer
            {
                Name = "Loose Seal",
                Description = "A hoppy IPA from the west coast",
                Brewery = "Bluth Brews",
                ABV = 7
            };
            beers.Add(beer1);

            var beer2 = new Beer
            {
                Name = "Illusions",
                Description = "A deceptively tasty pale ale from the west coast",
                Brewery = "Bluth Brews",
                ABV = 8
            };
            beers.Add(beer2);

            beerService.InsertBeers(beers);
        }