// todo private static List <RecipeIngredientMeasurement> RecipeDtoToRecipeIngredientMeasurements(RecipeDto recipeDto) { var recipeIngredientMeasurements = new List <RecipeIngredientMeasurement>(); foreach (var ingredientDto in recipeDto.Ingredients) { foreach (var measurementDto in ingredientDto.Measurements) { var recipeIngredientMeasurement = new RecipeIngredientMeasurement() { Ingredient = new Ingredient() { Id = ingredientDto.Id, Name = ingredientDto.Name }, Measurement = new Measurement() { Id = measurementDto.Id, Name = measurementDto.Name, Symbol = measurementDto.Symbol }, Quantity = measurementDto.Quantity }; recipeIngredientMeasurements.Add(recipeIngredientMeasurement); } } return(recipeIngredientMeasurements); }
public static RecipeIngredientMeasurement GetIngredient(RecipesContext db, string ingredient, Measurement measurement, double qty) { if (string.IsNullOrEmpty(ingredient)) { throw new NotImplementedException(); } if (ingredient.Length > 255) { ingredient = ingredient.Substring(0, 255); } Ingredient ing = db.Ingredients.FirstOrDefault(i => i.IngredientName == ingredient); if (ing == null) { ing = new Ingredient(); ing.IngredientName = ingredient; db.Ingredients.Add(ing); db.SaveChanges(); } int?measurementID = (measurement == null ? (int?)null : measurement.MeasurementID); var im = db.IngredientMeasurements.FirstOrDefault(x => x.IngredientID == ing.IngredientID && x.MeasurementID == measurementID); if (im == null) { im = new IngredientMeasurement(); im.IngredientID = ing.IngredientID; if (measurement != null) { im.MeasurementID = measurement.MeasurementID; } db.IngredientMeasurements.Add(im); db.SaveChanges(); } var recIngrMeasurement = new RecipeIngredientMeasurement(); recIngrMeasurement.IngredientMeasurementID = im.IngredientMeasurementID; if (qty != 0) { recIngrMeasurement.Quantity = (float)qty; } return(recIngrMeasurement); }