public IActionResult Answer(VacationsRequest vacationsRequest) { if (vacationsRequest.IsApproved == null) { ModelState.AddModelError("notAnswered", "No ha respondido aún a la solicitud"); } if (!ModelState.IsValid) { var attorney = _attorneysRepo.Attorneys.Where(a => a.Id == vacationsRequest.AttorneyId).FirstOrDefault(); NewVacationsRequestViewModel viewModel = new NewVacationsRequestViewModel() { VacationsRequest = vacationsRequest, AttorneyName = attorney.Name }; return(View(viewModel)); } else { int currentUserId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value); string message; _vacationsRequestRepo.Approve(vacationsRequest, currentUserId, out message); TempData["answered"] = true; TempData["message"] = message; return(RedirectToAction("Admin")); } }
public IActionResult New(VacationsRequest vacationsRequest) { if (!ModelState.IsValid) { var user = HttpContext.User; var id = user.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; var attorney = _attorneysRepo.Attorneys.Where(x => x.UserId == Convert.ToInt32(id)).FirstOrDefault(); NewVacationsRequestViewModel viewModel = new NewVacationsRequestViewModel { DaysAvailable = attorney.VacationCount, VacationsRequest = vacationsRequest }; return(View(viewModel)); } else { var user = HttpContext.User; var userId = Convert.ToInt32(user.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value); if (_vacationsRequestRepo.ValidateRequest(userId, vacationsRequest.Quantity)) { //vacationsRequest.AttorneyId = attorney.AttorneyId; _vacationsRequestRepo.Save(vacationsRequest, userId); ViewBag.DaysInvalid = false; TempData["added"] = true; return(RedirectToAction("New")); } else { //Refactorizar acá para agregar manualmente el error al model view state ViewBag.DaysInvalid = true; NewVacationsRequestViewModel viewModel = new NewVacationsRequestViewModel { DaysAvailable = _vacationsRequestRepo.GetAvailableVacationCount(userId), VacationsRequest = vacationsRequest }; return(View(viewModel)); } } }