internal async Task <int> CreateAndSaveRecipe(RecipesCreateViewModel viewModel, string userId) { HttpPostedFileBase file = viewModel.UploadedFile; if (UploadedFileExists(file)) { if (IsImage(file)) { viewModel.ImageReference = new ImageHandler().SaveInitialImageAndGetReference(viewModel.UploadedFile); } } CookBook selectedCookBook = new CookBookRetriever() .GetUserCookBookByName(userId, viewModel.CookBookName); Recipe recipe = new Recipe(viewModel, userId, selectedCookBook); repository.AttachCookBookAndAddRecipe(selectedCookBook, recipe); return(await repository.SaveChangesAsync()); }