Example #1
0
 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"));
     }
 }
Example #2
0
        public IActionResult New()
        {
            var user   = HttpContext.User;
            var userId = Convert.ToInt32(user.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
            NewVacationsRequestViewModel viewModel = new NewVacationsRequestViewModel
            {
                DaysAvailable    = _vacationsRequestRepo.GetAvailableVacationCount(userId),
                VacationsRequest = new VacationsRequest()
            };

            ViewBag.AddedRequest = TempData["added"];
            ViewBag.DaysInvalid  = false;
            return(View(viewModel));
        }
Example #3
0
        public IActionResult Answer(int id)
        {
            ViewBag.UpdatedVacationRequest = TempData["updated"];
            NewVacationsRequestViewModel viewModel = new NewVacationsRequestViewModel();
            var vacations = _vacationsRequestRepo.VacationsRequests().Include(v => v.Attorney).Where(v => v.Id == id).FirstOrDefault();

            viewModel.VacationsRequest = vacations;
            viewModel.AttorneyName     = vacations.Attorney.Name;
            if (viewModel.VacationsRequest == null)
            {
                return(NotFound());
            }
            return(View(viewModel));
        }
Example #4
0
        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));
                }
            }
        }