//lägger till ett recept public Recipe AddRecipe(string name, List<List<object>> ingredients) { if (!Regex.IsMatch(name, @"^[a-zA-Z ]+$")) { errorMessage = "Var god fyll i ett receptnamn (endast bokstäver)"; throw new ArgumentException(); } if (!ingredients.Any()) { errorMessage = "Var god lägg till minst 1 ingrediens"; throw new ArgumentException(); } try { CreateMissingIngredients(ingredients); } catch (InvalidOperationException) { //felmedelandet = stack trace från createMissingIngredients(); throw new ArgumentException(); } Recipe newRecipe = new Recipe { recipeName = name }; thDb.Recipe.Add(newRecipe); try { thDb.SaveChanges(); } catch (DbUpdateException) { errorMessage = "Recept finns redan i databas, välj ett annat namn"; thDb.Recipe.Remove(newRecipe); throw new ArgumentException(); } foreach (List<object> l in ingredients) { IngredientRecipe iR = new IngredientRecipe { recipeName = name, ingredientName = (l[0] as string).ToLower(), amount = (int)l[1], unit = l[2] as string }; try { thDb.IngredientRecipe.Add(iR); thDb.SaveChanges(); } catch(DbUpdateException) { errorMessage = "Var god gruppera ingredienserna"; thDb.IngredientRecipe.Remove(iR); thDb.Recipe.Remove(newRecipe); thDb.SaveChanges(); throw new ArgumentException(); } } return newRecipe; }
public List<Recipe> RecipeList() { Controller controller = new Controller(); List<Recipe> recipes = new List<Recipe>(); foreach (TacoService.Recipe i in controller.RecipeList()) { Recipe r = new Recipe(i); recipes.Add(r); } return recipes; }
//meny public Menu AddRecipeToMenu(string username, Recipe recipe, string weekNumber, string weekDay, string plannedQuantity) { return dal.AddRecipeToMenu(username, recipe, weekNumber, weekDay, plannedQuantity); }
/* * meny * **/ //lägger till ett recept till aktuell meny public Menu AddRecipeToMenu(string username, Recipe recipe, string weekNumber, string weekDay, string plannedQuantity) { Menu newMenuEntry = null; MenuRecipe newMapping = null; try { newMenuEntry = new Menu { userName = username, weekNumber = weekNumber, weekDay = weekDay }; newMapping = new MenuRecipe { userName = username, recipeName = recipe.recipeName, weekNumber = weekNumber, weekDay = weekDay, servings = int.Parse(plannedQuantity) }; thDb.Menu.Add(newMenuEntry); thDb.MenuRecipe.Add(newMapping); thDb.SaveChanges(); } catch (DbUpdateException) { thDb.Menu.Remove(newMenuEntry); thDb.MenuRecipe.Remove(newMapping); errorMessage = "Det finns redan ett recept på vald dag"; throw new ArgumentException(); } return newMenuEntry; }