public async Task <JsonResult> AddEditMeal(DailyReportMealViewModel model) { if (ModelState.IsValid) { if (model.Id == null) { var meal = DailyReportMeal.Create(model.PersonId, model.ClassId, model.OrganizationId, model.Date, model.Note, _userId); await _unitOfWork.DailyReportMeals.Insert(meal); var saveMealResult = await _unitOfWork.SaveAsync(); if (saveMealResult.Succeeded) { var foods = new List <DailyReportFood>(); foreach (var f in model.Foods) { var food = DailyReportFood.Create(f.Food, f.FoodType, meal.Id, _userId); foods.Add(food); } await _unitOfWork.DailyReportFoods.InsertRange(foods); } } else { var meal = await _unitOfWork.DailyReportMeals.GetOneAsync(x => x.IsActive && x.Id == model.Id, include : p => p.Include(x => x.DailyReportFoods)); meal.DailyReportFoods.ForEach(x => x.IsActive = false); meal.Update(model); _unitOfWork.DailyReportMeals.Update(meal); var saveMealResult = await _unitOfWork.SaveAsync(); var foods = new List <DailyReportFood>(); foreach (var f in model.Foods) { var food = DailyReportFood.Create(f.Food, f.FoodType, meal.Id, _userId); foods.Add(food); } await _unitOfWork.DailyReportFoods.InsertRange(foods); } var result = await _unitOfWork.SaveAsync(); if (result.Succeeded) { return(Json(new JsonMessage { Color = "#ff6849", Message = "Meal saved", Header = "Success", Icon = "success", AdditionalData = model })); } return(Json(new JsonMessage { Color = "#ff6849", Message = "Save Error", Header = "Error", Icon = "error", AdditionalData = model })); } else { return(Json(new JsonMessage { Color = "#ff6849", Message = "Model Error", Header = "Error", Icon = "error", AdditionalData = model })); } }
public async Task <IActionResult> EditMeal(Guid id) { var meal = await _unitOfWork.DailyReportMeals.GetOneAsync(x => x.IsActive && x.Id == id, include : p => p.Include(x => x.DailyReportFoods)); return(View("AddEditMeal", DailyReportMealViewModel.Create(meal))); }
public void Update(DailyReportMealViewModel model) { this.Note = model.Note; this.MealType = model.MealType; }