Exemplo n.º 1
0
 public async Task <bool> RecipeExists(string name)
 {
     using (var db = new CoffeBookContext())
     {
         return(db.Recipes.SingleOrDefault(x => x.Name.Equals(name)) == null);
     }
 }
Exemplo n.º 2
0
 public async Task <RecipeBookDto> GetRecipeBookAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         return(new RecipeBookDto(GetRecipeBook(id, db)));
     }
 }
Exemplo n.º 3
0
 public async Task <CoffeeDto> GetCoffeeAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         return(new CoffeeDto(db.Coffes.SingleOrDefault(x => x.Id == id)));
     }
 }
Exemplo n.º 4
0
 private IList <User> GetAllUsers(CoffeBookContext db)
 {
     return(db.Users
            .Include(x => x.RecipeBooks)
            .Include(x => x.RecipeBooks.Select(y => y.Recipes))
            .Include(x => x.RecipeBooks.Select(y => y.Recipes.Select(z => z.CoffeeType))).ToList());
 }
Exemplo n.º 5
0
        public async Task <BlCallResult <IList <CoffeeDto> > > SearchForCoffee(string searchTerm)
        {
            Console.WriteLine("SearchForCoffee enter");
            using (var db = new CoffeBookContext())
            {
                try
                {
                    var coffees = db.Coffes
                                  .Where(x => x.Name.ToLowerInvariant().Contains(searchTerm.ToLowerInvariant()));
                    var coffeeDtos = new List <CoffeeDto>();
                    foreach (var coffee in coffees)
                    {
                        coffeeDtos.Add(new CoffeeDto(coffee));
                    }
                    Console.WriteLine("SearchForCoffee enter");
                    return(new BlCallResult <IList <CoffeeDto> >(coffeeDtos));
                }
                catch (Exception e)
                {
                    return(new BlCallResult <IList <CoffeeDto> >(BlCallResult.BlResult.DbError, e));

                    Console.WriteLine("AddRecipeToRecipeBook exit");
                    return(new BlCallResult <IList <CoffeeDto> >(BlCallResult.BlResult.DbError, e));
                }
            }
        }
Exemplo n.º 6
0
 public async Task <CoffeeDto> AddCoffeeAsync(CoffeeDto newCoffee)
 {
     using (var db = new CoffeBookContext())
     {
         var coffeeEntity = ConvertDtoToEntity(newCoffee, db);
         return(newCoffee);
     }
 }
Exemplo n.º 7
0
 public async Task <RecipeDto> AddRecipeAsync(RecipeDto newRecipe)
 {
     using (var db = new CoffeBookContext())
     {
         var entity = ConvertDtoToEntity(newRecipe, db);
         return(new RecipeDto(entity));
     }
 }
Exemplo n.º 8
0
 public async Task <RecipeBookDto> AddRecipeBookAsync(RecipeBookDto newRecipeBook)
 {
     using (var db = new CoffeBookContext())
     {
         var recipeBook = ConvertDtoToEntity(newRecipeBook, db);
         return(new RecipeBookDto(recipeBook));
     }
 }
Exemplo n.º 9
0
 private User GetUser(long id, CoffeBookContext db)
 {
     return(id == -1 ? null : db.Users
            .Include(x => x.RecipeBooks)
            .Include(x => x.RecipeBooks.Select(y => y.Recipes))
            .Include(x => x.RecipeBooks.Select(y => y.Recipes.Select(z => z.CoffeeType)))
            .SingleOrDefault(x => x.Id == id));
 }
Exemplo n.º 10
0
 public async Task <UserDto> GetUserAsync(string name)
 {
     using (var db = new CoffeBookContext())
     {
         var user = GetUserByName(name, db);
         return(user == null ? null : new UserDto(user));
     }
 }
Exemplo n.º 11
0
 private User GetUserByName(string name, CoffeBookContext db)
 {
     return(db.Users
            .Include(x => x.RecipeBooks)
            .Include(x => x.RecipeBooks.Select(y => y.Recipes))
            .Include(x => x.RecipeBooks.Select(y => y.Recipes.Select(z => z.CoffeeType)))
            .SingleOrDefault(x => x.Name == name));
 }
Exemplo n.º 12
0
 public async Task <UserDto> GetUserAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         var user = GetUser(id, db);
         return(user == null ? null : new UserDto(user));
     }
 }
Exemplo n.º 13
0
 public async Task <UserDto> AddUserAsync(UserDto newUser)
 {
     using (var db = new CoffeBookContext())
     {
         var userEntity = ConvertDtoToEntity(newUser, db);
         return(newUser);
     }
 }
Exemplo n.º 14
0
 public async void DeleteRecipeAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         var toDelete = db.Recipes.SingleOrDefault(x => x.Id == id);
         db.Recipes.Remove(toDelete);
         db.SaveChanges();
     }
 }
Exemplo n.º 15
0
 public async void DeleteRecipeBookAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         var toDelete = GetRecipeBook(id, db);
         db.RecipeBooks.Remove(toDelete);
         db.SaveChanges();
     }
 }
Exemplo n.º 16
0
 public async Task <CoffeeDto> UpdateCoffeeAsync(CoffeeDto updatedCoffee)
 {
     using (var db = new CoffeBookContext())
     {
         var coffee = db.Coffes.SingleOrDefault(x => x.Id == updatedCoffee.Id);
         coffee.Name    = updatedCoffee.Name;
         coffee.Picture = updatedCoffee.Picture;
         db.SaveChanges();
         return(new CoffeeDto(coffee));
     }
 }
Exemplo n.º 17
0
        public async Task <BlCallResult <RecipeDto> > AddRecipeToCoffee(CoffeeDto coffee, RecipeDto recipe)
        {
            Console.WriteLine("AddRecipeToCoffee enter");
            using (var db = new CoffeBookContext())
            {
                var coffeeFromDb = db.Coffes.SingleOrDefault(x => x.Id == coffee.Id);
                if (coffeeFromDb == null)
                {
                    try
                    {
                        await AddCoffeeAsync(coffee);

                        coffeeFromDb = db.Coffes.SingleOrDefault(x => x.Id == coffee.Id);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("AddRecipeToCoffee exception");
                        return(new BlCallResult <RecipeDto>(BlCallResult.BlResult.CoffeeError, e));
                    }
                }
                var recipeFromDb = GetRecipe(recipe.Id, db);
                if (recipeFromDb != null)
                {
                    recipeFromDb.CoffeeType = coffeeFromDb;
                }
                else
                {
                    try
                    {
                        var newRecipe = await AddRecipeAsync(recipe);

                        newRecipe.CoffeeType = coffee;
                        recipe = newRecipe;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("AddRecipeToCoffee exception");
                        return(new BlCallResult <RecipeDto>(BlCallResult.BlResult.RecipeError, e));
                    }
                }
                try
                {
                    db.SaveChanges();
                    Console.WriteLine("AddRecipeToCoffee exit");
                    return(new BlCallResult <RecipeDto>(await GetRecipeAsync(recipe.Id)));
                }
                catch (Exception e)
                {
                    Console.WriteLine("AddRecipeToCoffee exception");
                    return(new BlCallResult <RecipeDto>(BlCallResult.BlResult.DbError, e));
                }
            }
        }
Exemplo n.º 18
0
 public async Task <IList <RecipeBookDto> > GetAllRecipeBooksAsync()
 {
     using (var db = new CoffeBookContext())
     {
         var entities = GetAllRecipeBooks(db);
         var dtos     = new List <RecipeBookDto>();
         foreach (var entity in entities)
         {
             dtos.Add(new RecipeBookDto(entity));
         }
         return(dtos);
     }
 }
Exemplo n.º 19
0
 public async Task <RecipeDto> UpdateRecipeAsync(RecipeDto updatedRecipe)
 {
     using (var db = new CoffeBookContext())
     {
         var recipeEntity = GetRecipe(updatedRecipe.Id, db);
         recipeEntity.Name        = updatedRecipe.Name;
         recipeEntity.CoffeeType  = ConvertDtoToEntity(updatedRecipe.CoffeeType, db);
         recipeEntity.Picture     = updatedRecipe.Picture;
         recipeEntity.Description = updatedRecipe.Description;
         db.SaveChanges();
         return(new RecipeDto(recipeEntity));
     }
 }
Exemplo n.º 20
0
 public async Task <IList <CoffeeDto> > GetAllCoffeesAsync()
 {
     using (var db = new CoffeBookContext())
     {
         var coffeeEntities = db.Coffes.ToList();
         var coffeeDtos     = new List <CoffeeDto>();
         foreach (var entity in coffeeEntities)
         {
             coffeeDtos.Add(new CoffeeDto(entity));
         }
         return(coffeeDtos);
     }
 }
Exemplo n.º 21
0
 public async void DeleteUserAsync(long id)
 {
     using (var db = new CoffeBookContext())
     {
         var toDelete = db.Users.Include(x => x.RecipeBooks).SingleOrDefault(x => x.Id == id);
         if (toDelete != null)
         {
             foreach (var recipeBook in toDelete.RecipeBooks)
             {
                 DeleteRecipeBookAsync(recipeBook.Id);
             }
         }
         db.Users.Remove(toDelete);
         db.SaveChanges();
     }
 }
Exemplo n.º 22
0
 public async Task <UserDto> UpdateUserAsync(UserDto updatedUser)
 {
     using (var db = new CoffeBookContext())
     {
         var user = GetUser(updatedUser.Id, db);
         user.Name     = updatedUser.Name;
         user.Password = updatedUser.Password;
         var recipeBooks = new List <RecipeBook>();
         foreach (var recipeBook in updatedUser.RecipeBooks)
         {
             recipeBooks.Add(ConvertDtoToEntity(recipeBook, db));
         }
         user.RecipeBooks = recipeBooks;
         db.SaveChanges();
         return(new UserDto(user));
     }
 }
Exemplo n.º 23
0
        private Coffee ConvertDtoToEntity(CoffeeDto coffeeDto, CoffeBookContext db)
        {
            var coffee = db.Coffes.SingleOrDefault(x => x.Id == coffeeDto.Id);

            if (coffee == null)
            {
                coffee = new Coffee
                {
                    Name    = coffeeDto.Name,
                    Picture = coffeeDto.Picture
                };
                db.Coffes.Add(coffee);
                db.SaveChanges();
                coffeeDto.Id = coffee.Id;
            }
            return(coffee);
        }
Exemplo n.º 24
0
 public async Task <RecipeBookDto> UpdateRecipeBookAsync(RecipeBookDto updatedRecipeBook)
 {
     using (var db = new CoffeBookContext())
     {
         var recipeBook = ConvertDtoToEntity(updatedRecipeBook, db);
         recipeBook.Description = updatedRecipeBook.Description;
         recipeBook.Name        = updatedRecipeBook.Name;
         var recipes = new List <Recipe>();
         foreach (var recipe in updatedRecipeBook.Recipes)
         {
             recipes.Add(ConvertDtoToEntity(recipe, db));
         }
         recipeBook.Recipes = recipes;
         db.SaveChanges();
         return(new RecipeBookDto(recipeBook));
     }
 }
Exemplo n.º 25
0
        private Recipe ConvertDtoToEntity(RecipeDto recipeDto, CoffeBookContext db)
        {
            var recipe = GetRecipe(recipeDto.Id, db);

            if (recipe == null)
            {
                recipe = new Recipe
                {
                    Name        = recipeDto.Name,
                    Description = recipeDto.Description,
                    Picture     = recipeDto.Picture,
                    CoffeeType  = ConvertDtoToEntity(recipeDto.CoffeeType, db)
                };
                db.Recipes.Add(recipe);
                db.SaveChanges();
                recipeDto.Id = recipe.Id;
            }
            return(recipe);
        }
Exemplo n.º 26
0
        public async Task <BlCallResult <RecipeBookDto> > RemoveRecipeFromRecipeBook(RecipeBookDto recipeBookDto, RecipeDto recipeDto)
        {
            Console.WriteLine("RemoveRecipeFromRecipeBook enter");
            using (var db = new CoffeBookContext())
            {
                try
                {
                    recipeBookDto.Recipes.Remove(recipeDto);
                    var updatedRecipeBook = await UpdateRecipeBookAsync(recipeBookDto);

                    recipeBookDto = updatedRecipeBook;
                }
                catch (Exception e)
                {
                    Console.WriteLine("AddRecipeToRecipeBook exit");
                    return(new BlCallResult <RecipeBookDto>(BlCallResult.BlResult.RecipeBookError, e));
                }
                Console.WriteLine("RemoveRecipeFromRecipeBook exit");
                return(new BlCallResult <RecipeBookDto>(recipeBookDto));
            }
        }
Exemplo n.º 27
0
        private RecipeBook ConvertDtoToEntity(RecipeBookDto recipeBookDto, CoffeBookContext db)
        {
            var recipeBook = GetRecipeBook(recipeBookDto.Id, db);

            if (recipeBook == null)
            {
                recipeBook = new RecipeBook
                {
                    Description = recipeBookDto.Description,
                    Name        = recipeBookDto.Name
                };
                var recipes = new List <Recipe>();
                foreach (var recipe in recipeBookDto.Recipes)
                {
                    recipes.Add(ConvertDtoToEntity(recipe, db));
                }
                recipeBook.Recipes = recipes;
                db.RecipeBooks.Add(recipeBook);
                db.SaveChanges();
                recipeBookDto.Id = recipeBook.Id;
            }
            return(recipeBook);
        }
Exemplo n.º 28
0
        private User ConvertDtoToEntity(UserDto userDto, CoffeBookContext db)
        {
            var user = GetUser(userDto.Id, db);

            if (user == null)
            {
                user = new User
                {
                    Name     = userDto.Name,
                    Password = userDto.Password
                };
                var recipeBooks = new List <RecipeBook>();
                foreach (var recipeBook in userDto.RecipeBooks)
                {
                    recipeBooks.Add(ConvertDtoToEntity(recipeBook, db));
                }
                user.RecipeBooks = recipeBooks;
                db.Users.Add(user);
                db.SaveChanges();
                userDto.Id = user.Id;
            }
            return(user);
        }
Exemplo n.º 29
0
 public async Task <BlCallResult <IList <RecipeDto> > > GetCoffeeRecipes(CoffeeDto coffeeDto)
 {
     Console.WriteLine("GetCoffeeRecipes enter");
     using (var db = new CoffeBookContext())
     {
         CoffeeDto coffee;
         try
         {
             coffee = await GetCoffeeAsync(coffeeDto.Id);
         }
         catch (Exception e)
         {
             return(new BlCallResult <IList <RecipeDto> >(BlCallResult.BlResult.CoffeeError, e));
         }
         var recipes    = db.Recipes.Include(x => x.CoffeeType).Where(x => x.CoffeeType.Id == coffee.Id);
         var recipeDtos = new List <RecipeDto>();
         foreach (var recipe in recipes)
         {
             recipeDtos.Add(new RecipeDto(recipe));
         }
         Console.WriteLine("GetCoffeeRecipes exit");
         return(new BlCallResult <IList <RecipeDto> >(recipeDtos));
     }
 }
Exemplo n.º 30
0
 private IList <Recipe> GetAllRecipes(CoffeBookContext db)
 {
     return(db.Recipes.Include(x => x.CoffeeType).ToList());
 }