public async Task UpsertReview(Review review)
        {
            var existingReview = await _database.Single <Review>(x => x.UserId == review.UserId && x.RestaurantId == review.RestaurantId);

            if (existingReview != null)
            {
                await _database.Delete <Review>(x => x.Id == review.Id);
            }
            await _database.Add(review);
        }
        public async Task <User> Register(User user, string password)
        {
            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.Password     = passwordHash;
            user.PasswordSalt = passwordSalt;

            await _database.Add <User>(user);

            return(user);
        }
        public async Task UpdateStock(List <Item> orderItems)
        {
            var restaurant = await _database.Single <Restaurant>(x
                                                                 => x.Menu.Any(m => m.Id == orderItems.FirstOrDefault().FoodId));

            foreach (var item in orderItems)
            {
                restaurant.Menu.FirstOrDefault(x => x.Id == item.FoodId).Quantity -= item.Quantity;
            }

            await _database.Delete <Restaurant>(x => x.Id == restaurant.Id);

            await _database.Add(restaurant);
        }
 public async Task CreateOrder(Order order)
 => await _database.Add(order);