public async Task <Location> AddLocation(string pk, Location location)
        {
            var table = DaBeerStorageTable.MapFromLocation(location, pk);

            await _context.SaveAsync(table);

            return(location);
        }
        public async Task <List <Location> > ListLocation(string pk)
        {
            string[] filter = { "Location" };
            var      items  = await _context.QueryAsync <DaBeerStorageTable>(pk, QueryOperator.BeginsWith, filter).GetRemainingAsync();

            var locations = DaBeerStorageTable.MapToLocations(items);

            return(locations);
        }
        private async Task <List <Beer> > Scan(string key, object value)
        {
            var conditions = new List <ScanCondition> {
                new ScanCondition(key, ScanOperator.NotEqual, value)
            };
            var items = await _context.ScanAsync <DaBeerStorageTable>(conditions).GetRemainingAsync();

            var beers = DaBeerStorageTable.MapToBeers(items);

            return(beers);
        }
        public async Task <Beer> GetBeer(string pk, string id)
        {
            string[] filter = { "Beer" };
            var      items  = await _context.QueryAsync <DaBeerStorageTable>(pk, QueryOperator.BeginsWith, filter).GetRemainingAsync();

            //TODO This is bad getting all items
            var beers = DaBeerStorageTable.MapToBeers(items);
            var beer  = beers.First(x => x.BeerId == id);

            return(beer);
        }
        public async Task <List <Beer> > ListNotDrank(string pk)
        {
            var conditions = new List <ScanCondition>();

            conditions.Add(new ScanCondition("Drank", ScanOperator.NotEqual, true));
            conditions.Add(new ScanCondition("PK", ScanOperator.Equal, pk));
            conditions.Add(new ScanCondition("SK", ScanOperator.BeginsWith, "Beer#"));
            var items = await _context.ScanAsync <DaBeerStorageTable>(conditions).GetRemainingAsync();

            var beers = DaBeerStorageTable.MapToBeers(items);

            return(beers);
        }
        public async Task <Beer> SaveBeer(string pk, Beer beer)
        {
            beer.BeerId = Guid.NewGuid().ToString();
            var item = DaBeerStorageTable.MapFromBeer(beer, pk);

            try
            {
                await _context.SaveAsync(item);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(beer);
        }