public async Task SeedAsync(ApplicationDbContext dbContext, IServiceProvider serviceProvider) { if (!dbContext.Meals.Any()) { var meals = JsonConvert.DeserializeObject <MealDto[]>(File.ReadAllText(@"../../Data/SoftGym.Data/Seeding/Data/Meals.json")); foreach (var meal in meals) { var newMeal = new Meal() { Name = meal.Name, PictureUrl = meal.PictureUrl, Type = meal.Type, CaloriesPer100Grams = meal.CaloriesPer100Grams, }; foreach (var mealPreference in meal.MealsPreferences) { var newMealPreference = new MealPreference() { MealId = newMeal.Id, PreferenceId = mealPreference.PreferenceId, }; await dbContext.MealsPreferences.AddAsync(newMealPreference); } await dbContext.Meals.AddAsync(newMeal); await dbContext.SaveChangesAsync(); } } }
public async Task <Meal> EditMealAsync(EditMealInputModel inputModel) { var currentMeal = await this.mealsRepository .All() .FirstOrDefaultAsync(x => x.Id == inputModel.Id); currentMeal.Name = inputModel.Name; if (inputModel.NewImageFile != null) { currentMeal.PictureUrl = await this.cloudinaryService.UploudAsync(inputModel.NewImageFile); } currentMeal.Type = inputModel.Type; currentMeal.CaloriesPer100Grams = inputModel.CaloriesPer100Grams; foreach (var foodPreference in this.mealsPreferencesRepository .All() .Where(x => x.MealId == currentMeal.Id)) { this.mealsPreferencesRepository.Delete(foodPreference); } await this.mealsPreferencesRepository.SaveChangesAsync(); if (inputModel.FoodPreferences != null) { foreach (var foodPreference in inputModel.FoodPreferences) { FoodPreference currentPreference; currentPreference = await this.foodPreferenceRepository .All() .FirstAsync(x => x.Preference == foodPreference); MealPreference mealPreference = new MealPreference { Meal = currentMeal, MealId = currentMeal.Id, Preference = currentPreference, PreferenceId = currentPreference.Id, }; await this.mealsPreferencesRepository.AddAsync(mealPreference); currentMeal.FoodPreferences.ToList().Add(mealPreference); currentPreference.Meals.ToList().Add(mealPreference); } await this.mealsRepository.SaveChangesAsync(); } return(currentMeal); }
public async Task <Meal> AddMealAsync(AddMealInputModel inputModel) { Meal meal = new Meal { Name = inputModel.Name, CaloriesPer100Grams = inputModel.CaloriesPer100Grams, PictureUrl = await this.cloudinaryService.UploudAsync(inputModel.PictureFile), Type = inputModel.Type, }; if (inputModel.FoodPreferences != null) { foreach (var foodPreference in inputModel.FoodPreferences) { FoodPreference currentPreference; currentPreference = await this.foodPreferenceRepository .All() .FirstAsync(x => x.Preference == foodPreference); MealPreference mealPreference = new MealPreference { Meal = meal, MealId = meal.Id, Preference = currentPreference, PreferenceId = currentPreference.Id, }; await this.mealsPreferencesRepository.AddAsync(mealPreference); meal.FoodPreferences.ToList().Add(mealPreference); currentPreference.Meals.ToList().Add(mealPreference); } } await this.mealsRepository.AddAsync(meal); await this.mealsRepository.SaveChangesAsync(); return(meal); }
public async Task <EatingPlansService> Before() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("CardsDb").Options; var db = new ApplicationDbContext(options); var mealsRepositoryInMemory = new EfDeletableEntityRepository <Meal>(db); var foodPreferencesRepositoryInMemory = new EfRepository <SoftGym.Data.Models.FoodPreference>(db); var mealPreferenceReposityoryInMemory = new EfRepository <MealPreference>(db); var eatingPlansRepositoryInMemory = new EfDeletableEntityRepository <EatingPlan>(db); var service = new EatingPlansService( eatingPlansRepositoryInMemory, mealsRepositoryInMemory, this.mealsPlansRepository.Object, this.usersService.Object, this.notificationsService.Object); for (int i = 0; i < 8; i++) { if (i <= 4) { await mealsRepositoryInMemory.AddAsync(new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Breakfast, }); } else { var meal = new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Breakfast, }; var foodPreference = new SoftGym.Data.Models.FoodPreference() { Preference = SoftGym.Data.Models.Enums.FoodPreference.Egg, }; var mealPreference = new MealPreference() { MealId = meal.Id, Meal = meal, PreferenceId = foodPreference.Id, Preference = foodPreference, }; await foodPreferencesRepositoryInMemory.AddAsync(foodPreference); await mealPreferenceReposityoryInMemory.AddAsync(mealPreference); meal.FoodPreferences.ToList().Add(new SoftGym.Data.Models.MealPreference() { MealId = meal.Id, Preference = foodPreference, }); await mealsRepositoryInMemory.AddAsync(meal); } } for (int i = 0; i < 8; i++) { if (i <= 4) { await mealsRepositoryInMemory.AddAsync(new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Lunch, }); } else { var meal = new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Lunch, }; var foodPreference = new SoftGym.Data.Models.FoodPreference() { Preference = SoftGym.Data.Models.Enums.FoodPreference.Egg, }; var mealPreference = new MealPreference() { MealId = meal.Id, Meal = meal, PreferenceId = foodPreference.Id, Preference = foodPreference, }; await foodPreferencesRepositoryInMemory.AddAsync(foodPreference); await mealPreferenceReposityoryInMemory.AddAsync(mealPreference); meal.FoodPreferences.ToList().Add(new SoftGym.Data.Models.MealPreference() { MealId = meal.Id, Preference = foodPreference, }); await mealsRepositoryInMemory.AddAsync(meal); } } for (int i = 0; i < 8; i++) { if (i <= 4) { await mealsRepositoryInMemory.AddAsync(new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Dinner, }); } else { var meal = new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Dinner, }; var foodPreference = new SoftGym.Data.Models.FoodPreference() { Preference = SoftGym.Data.Models.Enums.FoodPreference.Egg, }; var mealPreference = new MealPreference() { MealId = meal.Id, Meal = meal, PreferenceId = foodPreference.Id, Preference = foodPreference, }; await foodPreferencesRepositoryInMemory.AddAsync(foodPreference); await mealPreferenceReposityoryInMemory.AddAsync(mealPreference); meal.FoodPreferences.ToList().Add(new SoftGym.Data.Models.MealPreference() { MealId = meal.Id, Preference = foodPreference, }); await mealsRepositoryInMemory.AddAsync(meal); } } for (int i = 0; i < 16; i++) { if (i <= 8) { await mealsRepositoryInMemory.AddAsync(new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Snack, }); } else { var meal = new Meal() { Name = "Supa", CaloriesPer100Grams = 100, PictureUrl = "some url", Type = MealType.Snack, }; var foodPreference = new SoftGym.Data.Models.FoodPreference() { Preference = SoftGym.Data.Models.Enums.FoodPreference.Egg, }; var mealPreference = new MealPreference() { MealId = meal.Id, Meal = meal, PreferenceId = foodPreference.Id, Preference = foodPreference, }; await foodPreferencesRepositoryInMemory.AddAsync(foodPreference); await mealPreferenceReposityoryInMemory.AddAsync(mealPreference); meal.FoodPreferences.ToList().Add(new SoftGym.Data.Models.MealPreference() { MealId = meal.Id, Preference = foodPreference, }); await mealsRepositoryInMemory.AddAsync(meal); } } await mealsRepositoryInMemory.SaveChangesAsync(); return(service); }