// Removes student from guests of a meal public IActionResult Leave(int mealId) { // Get student Student student = studentRepository.GetStudent(GetUserId()); // Get meal Meal meal = mealRepository.GetMeal(mealId); // Attempt to leave student from meal DomainMethodResult result = meal.Leave(student); // Save to database -> show success message if (result.WasSuccessful) { mealRepository.Save(); TempData["success"] = result.Message; } // Show error message else { TempData["error"] = result.Message; } // Render main view return(RedirectToAction("List")); }
public IActionResult Edit(MealDate mealDate) { // Check if user filled in form correctly if (!ModelState.IsValid) { // If not => return edit view again => send meal date to fill in values return(View(mealDate)); } // Get meal Meal meal = mealRepository.GetMeal(mealDate.Meal.Id); // Get student Student student = studentRepository.GetStudent(GetUserId()); // Check if meal can be edited by student DomainMethodResult result = meal.AllowedToEdit(student); // Meal cannot be edited by student -> add with error if (!result.WasSuccessful) { TempData["error"] = result.Message; } // Meal can be edited by student -> update meal -> add success message else { // Combine date and time mealDate.Meal.DateTime = new DateTime(mealDate.Meal.DateTime.Year, mealDate.Meal.DateTime.Month, mealDate.Meal.DateTime.Day, mealDate.Time.Hour, mealDate.Time.Minute, 0); // Update meal in database mealRepository.SaveMeal(mealDate.Meal); TempData["success"] = "Maaltijd succesvol bijgewerkt"; } return(RedirectToAction("List")); }
public void Students_Cannot_Leave_Meal_Which_They_Did_Not_Join() { // Arrange Meal meal = new Meal() { MaxGuests = 3, Cook = new Student() { Id = 1, Name = "Test student" } }; Student student = new Student() { Id = 2, Name = "Test student" }; Student anotherStudent = new Student() { Id = 3, Name = "Test student" }; meal.Join(student); // Act DomainMethodResult result = meal.Leave(anotherStudent); // Assert Assert.False(result.WasSuccessful); }
public IActionResult Edit(int mealId) { // Get meal Meal meal = mealRepository.GetMeal(mealId); // Get student Student student = studentRepository.GetStudent(GetUserId()); // Check if meal can be edited by student DomainMethodResult result = meal.AllowedToEdit(student); // Render edit view if (result.WasSuccessful) { // Render edit view with => pass meal date to fill in values return(View(MealTransformer.TransformIntoMealDate(meal))); } // Render main view -> Show error message else { TempData["error"] = result.Message; return(RedirectToAction("List")); } }
public IActionResult Delete(int mealId) { // Get meal Meal meal = mealRepository.GetMeal(mealId); // Get student Student student = studentRepository.GetStudent(GetUserId()); // Check if student is allowed to delete meal DomainMethodResult result = meal.AllowedToEdit(student); // Check for result if (result.WasSuccessful) { mealRepository.DeleteMeal(meal); TempData["success"] = "Maaltijd succesvol verwijderd"; } else { TempData["error"] = result.Message; } // Render main view return(RedirectToAction("List")); }