public async Task <IActionResult> GetReportsByType(Guid personId, Guid classId, int type, DateTime?date = null) { if (date.HasValue == false) { date = DateTime.UtcNow; } var startDate = new DateTime(date.Value.Year, date.Value.Month, date.Value.Day); var endDate = new DateTime(date.Value.Year, date.Value.Month, date.Value.Day, 23, 59, 59); switch (type) { case (int)EnumDailyReportType.NapsSleep: { var naps = await _unitOfWork.DailyReportNaps.GetAsync(x => x.IsActive && x.PersonId == personId && x.ClassId == classId && x.Date >= startDate && x.Date <= endDate); return(PartialView("PartialDailyReportNap", DailyReportNap.Init(naps))); } case (int)EnumDailyReportType.Meals: { var meals = await _unitOfWork.DailyReportMeals.GetAsync(x => x.IsActive && x.OrganizationId == _organizationId && x.ClassId == classId && x.PersonId == personId && x.Date >= startDate && x.Date <= endDate, include : p => p.Include(x => x.DailyReportFoods) ); return(PartialView("PartialDailyReportMeal", DailyReportMeal.Init(meals))); } case (int)EnumDailyReportType.Bathroom: { var baths = await _unitOfWork.DailyReportBathrooms.GetAsync(x => x.IsActive && x.OrganizationId == _organizationId && x.ClassId == classId && x.PersonId == personId && x.Date >= startDate && x.Date <= endDate ); return(PartialView("PartialDailyReportBathroom", DailyReportBathroom.Init(baths))); } case (int)EnumDailyReportType.Medication: { var medications = await _unitOfWork.DailyReportMedications.GetAsync(x => x.IsActive && x.OrganizationId == _organizationId && x.ClassId == classId && x.PersonId == personId && x.Date >= startDate && x.Date <= endDate ); return(PartialView("PartialDailyReportMedication", DailyReportMedication.Init(medications))); } } return(View()); }
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> AddEditMeal(Guid personId, Guid classId, Guid organizationId, DateTime?date = null) { if (date.HasValue == false) { date = DateTime.UtcNow; } var model = DailyReportMeal.Init(personId, classId, organizationId, date.Value); return(View(model)); }
public async Task <IActionResult> GetMeals(Guid personId, Guid classId, Guid organizationId, DateTime?date) { if (date.HasValue == false) { date = DateTime.UtcNow; } var startDate = new DateTime(date.Value.Year, date.Value.Month, date.Value.Day); var endDate = new DateTime(date.Value.Year, date.Value.Month, date.Value.Day, 23, 59, 59); var meals = await _unitOfWork.DailyReportMeals.GetAsync(x => x.IsActive && x.OrganizationId == _organizationId && x.ClassId == classId && x.PersonId == personId && x.Date >= startDate && x.Date <= endDate, include : p => p.Include(x => x.DailyReportFoods) ); return(PartialView("PartialDailyReportMeal", DailyReportMeal.Init(meals))); }
public static object Create(DailyReportMeal meal) { var foods = meal.DailyReportFoods?.Where(x => x.IsActive)?.Select(x => new DailyReportFoodViewModel() { Food = x.Food, FoodType = x.FoodType, Id = x.Id }).ToList(); return(new DailyReportMealViewModel() { ClassId = meal.ClassId, Id = meal.Id, Date = meal.Date, Note = meal.Note, OrganizationId = meal.OrganizationId, PersonId = meal.PersonId, MealType = meal.MealType, Foods = foods }); }
public static DailyReportMealViewModel Create(DailyReportMeal meal, List <DailyReportFood> _foods) { var foods = _foods?.Select(x => new DailyReportFoodViewModel() { Food = x.Food, FoodType = x.FoodType, Id = x.Id }).ToList(); return(new DailyReportMealViewModel() { ClassId = meal.ClassId, Id = meal.Id, Date = meal.Date, Note = meal.Note, OrganizationId = meal.OrganizationId, PersonId = meal.PersonId, MealType = meal.MealType, Foods = foods }); }