//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);
            }
        }