public List <RecipeCuisine> MapToRecipeCuisines(RecipeRequest recipeRequest) { var cuisinesRecipeCuisines = new List <RecipeCuisine>(); foreach (var cuisines in recipeRequest.Cuisine) { if (!String.IsNullOrWhiteSpace(cuisines)) { var recipeCuisine = new RecipeCuisine(); { if (CheckCuisine(cuisines)) { var cuisine = GetCuisineId(cuisines); recipeCuisine.Cuisine = cuisine; recipeCuisine.CuisineId = cuisine.CuisineId; } else { var mapToCuisine = MapToCuisine(cuisines); recipeCuisine.CuisineId = mapToCuisine.CuisineId; recipeCuisine.Cuisine = mapToCuisine; } } cuisinesRecipeCuisines.Add(recipeCuisine); } } return(cuisinesRecipeCuisines); }
// work out if the cuisine already exists, if it does then use it for the mapping table, else create it private static void addCuisines(RecipeObj recipe) { using (var context = new WoolworthsDBDataContext()) { // clear the current mappings var maps = context.RecipeCuisineMaps.Where(r => r.RecipeID == recipe.RecipeID); context.RecipeCuisineMaps.DeleteAllOnSubmit(maps); context.SubmitChanges(); if (recipe.Cuisines == null) { return; } foreach (var cuisine in recipe.Cuisines) { // create or retrieve the RecipeCuisine.ID value var master = context.RecipeCuisines.SingleOrDefault(c => c.Description == cuisine.Cuisine); var recipeCuisineID = 0; if (master == null) { var toCreate = new RecipeCuisine() { Description = cuisine.Cuisine }; context.RecipeCuisines.InsertOnSubmit(toCreate); context.SubmitChanges(); recipeCuisineID = toCreate.ID; } else { recipeCuisineID = master.ID; } // add to the mapping table var map = new RecipeCuisineMap() { RecipeCuisineID = recipeCuisineID, RecipeID = recipe.RecipeID }; context.RecipeCuisineMaps.InsertOnSubmit(map); context.SubmitChanges(); } } }
// work out if the cuisine already exists, if it does then use it for the mapping table, else create it private void addCuisines(RecipeObj recipe) { using (var context = new WoolworthsDBDataContext()) { // clear the current mappings var maps = context.RecipeCuisineMaps.Where(r => r.RecipeID == recipe.RecipeID); context.RecipeCuisineMaps.DeleteAllOnSubmit(maps); context.SubmitChanges(); if (recipe.Cuisines == null) return; foreach (var cuisine in recipe.Cuisines) { // create or retrieve the RecipeCuisine.ID value var master = context.RecipeCuisines.SingleOrDefault(c => c.Description == cuisine.Cuisine); var recipeCuisineID = 0; if (master == null) { var toCreate = new RecipeCuisine() { Description = cuisine.Cuisine }; context.RecipeCuisines.InsertOnSubmit(toCreate); context.SubmitChanges(); recipeCuisineID = toCreate.ID; } else { recipeCuisineID = master.ID; } // add to the mapping table var map = new RecipeCuisineMap() { RecipeCuisineID = recipeCuisineID, RecipeID = recipe.RecipeID }; context.RecipeCuisineMaps.InsertOnSubmit(map); context.SubmitChanges(); } } }