Ejemplo n.º 1
0
 protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 {
     if (value != null)
     {
         if (value.GetType() == typeof(RespondViewModel))
         {
             RespondViewModel vm = (RespondViewModel)value;
             if (vm.SubmitResponse)
             {
                 foreach (ScreeningRequestPersonEntityViewModel srpevm in vm.Responses.Values)
                 {
                     if (srpevm.ScreeningResultID == ScreeningResult.ID_PENDING)  // TODO decouple from hard-coded id numbers
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                 }
             }
         }
         else if (value.GetType() == typeof(ConsolidateViewModel))
         {
             ConsolidateViewModel vm = (ConsolidateViewModel)value;
             if (vm.SendForFinalDecision)
             {
                 foreach (RecommendationViewModel rvm in vm.Recommendations.Values)
                 {
                     if (rvm.ScreeningResultID == ScreeningResult.ID_PENDING)
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                 }
             }
         }
         else if (value.GetType() == typeof(FinalizeViewModel))
         {
             FinalizeViewModel vm = (FinalizeViewModel)value;
             if (vm.Finalize)
             {
                 foreach (FinalDecisionViewModel fdvm in vm.FinalDecisions.Values)
                 {
                     if (fdvm.ScreeningResultID == ScreeningResult.ID_PENDING)
                     {
                         return(new ValidationResult(COLOR_CODING_ERROR_MESSAGE));
                     }
                     if (fdvm.ScreeningSupportStatusID == ScreeningSupportStatus.ID_PENDING)
                     {
                         return(new ValidationResult(SUPPORT_STATUS_ERROR_MESSAGE));
                     }
                 }
             }
         }
     }
     return(ValidationResult.Success);
 }
Ejemplo n.º 2
0
        public ActionResult RequestAction(ConsolidateViewModel cvm)
        {
            if (ModelState.IsValid)
            {
                // update commentary
                foreach (RecommendationViewModel rvm in cvm.Recommendations.Values)
                {
                    ScreeningRequestPersonRecommendation srpr;
                    if (rvm.Id > 0)
                    {
                        srpr = this.screeningTasks.GetRecommendation(rvm.Id);
                    }
                    else
                    {
                        srpr = new ScreeningRequestPersonRecommendation();
                    }

                    if (srpr.Version > rvm.Version)
                    {
                        ModelState.AddModelError("somekey", "Data has changed since you loaded this page.  Please reload before saving again.  Try pressing the back button to recover your edits.");
                        return(RequestAction(cvm));
                    }

                    srpr.Commentary      = rvm.Commentary;
                    srpr.Version         = rvm.Version;
                    srpr.RequestPerson   = this.requestPersonTasks.GetRequestPerson(rvm.RequestPersonID);
                    srpr.ScreeningResult = this.screeningTasks.GetScreeningResult(rvm.ScreeningResultID);
                    this.screeningTasks.SaveOrUpdateRecommendation(srpr, User.Identity.Name);
                }
                if (cvm.SendForFinalDecision)
                {
                    ViewBag.SuccessMessage = "Screening request sent for final decision.";

                    // update status
                    this.requestTasks.SaveRequestHistory(cvm.Id, this.requestTasks.GetRequestStatus(RequestStatus.NAME_SENT_FOR_FINAL_DECISION).Id, User.Identity.Name);

                    // send email notification
                    this.emailTasks.SendRequestSentForFinalDecisionEmail(User.Identity.Name, cvm.Id);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    //ViewBag.SuccessMessage = "Successfully saved commentary.  Click 'Send for Final Decision' when complete.";
                    return(RedirectToAction("RequestAction", new { id = cvm.Id }));  // need to finish transaction in order to load Recommendation.Id
                }
            }
            return(RequestAction(cvm.Id));
        }
Ejemplo n.º 3
0
        public ActionResult RequestAction(int id)
        {
            Request request = this.requestTasks.Get(id);

            if (request != null)
            {
                ViewBag.Request           = request;
                ViewBag.ScreeningEntities = ScreeningEntity.GetNames(request.GetCreatedDate());
                ConsolidateViewModel cvm = new ConsolidateViewModel(request, this.screeningTasks.GetScreeningResults(request.GetCreatedDate()));
                return(View(cvm));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }