//End of Pre-Load

        public async Task CreateCocktailAsync(string name, string description, string[] primaryIngredients, string[] ingredients, byte[] photo)
        {
            if (primaryIngredients == null)
            {
                throw new ArgumentNullException("Primary ingredients list cannot be null.");
            }
            if (String.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException("Cocktail name cannot be null or whitespace.");
            }
            var cocktail = new Cocktail()
            {
                Name          = name,
                Description   = description,
                AverageRating = 0,
                Hidden        = 0
            };
            await dbContext.Cocktails.AddAsync(cocktail);

            var cocktailPhoto = new CocktailPhoto()
            {
                CocktailCover = photo,
                Cocktail      = cocktail
            };
            await dbContext.CocktailPhotos.AddAsync(cocktailPhoto);

            await dbContext.SaveChangesAsync();

            foreach (var item in primaryIngredients.Where(p => !String.IsNullOrEmpty(p)))
            {
                if (!await iService.CheckIfIngredientExistsAsync(item, 1))
                {
                    await iService.CreateIngredientAsync(item, 1);
                }
                await AddIngredientToCocktailAsync(cocktail.Name, item.ToLower(), 1);
            }
            foreach (var item in (ingredients ?? new string[0]).Where(p => !String.IsNullOrEmpty(p)))
            {
                if (!await iService.CheckIfIngredientExistsAsync(item, 0))
                {
                    await iService.CreateIngredientAsync(item, 0);
                }
                await AddIngredientToCocktailAsync(cocktail.Name, item.ToLower(), 0);
            }
        }
        public void CreateCocktail(string name, string description, string[] ingredients, byte[] photo)
        {
            var cocktail = new Cocktail()
            {
                Name          = name,
                Description   = description,
                AverageRating = 0,
                Hidden        = 0
            };

            dbContext.Cocktails.Add(cocktail);
            var cocktailPhoto = new CocktailPhoto()
            {
                CocktailCover = photo,
                Cocktail      = cocktail
            };

            dbContext.CocktailPhotos.Add(cocktailPhoto);
            dbContext.SaveChanges();

            var ingCounter = 0;

            foreach (var item in ingredients)
            {
                if (!dbContext.Ingredients.Where(p => p.Name.ToLower() == item.ToLower()).Any())
                {
                    if (ingCounter == 0)
                    {
                        iService.CreateIngredient(item, 1);
                    }
                    else
                    {
                        iService.CreateIngredient(item, 0);
                    }
                }
                ingCounter++;
                AddIngredientToCocktail(cocktail.Name, item.ToLower());
            }
        }