Ejemplo n.º 1
0
        public ActionResult Create(CaseAssessment caseassessment, int caseId, int?caseMemberID)
        {
            caseassessment.LastUpdatedByWorkerID = CurrentLoggedInWorker.ID;
            try
            {
                if (caseassessment.StartDate > caseassessment.EndDate)
                {
                    throw new CustomException("Start date can't be greater than end date.");
                }
                caseassessment.QualityOfLifeIDs = Request.Form["QualityOfLifeIDs"].ToString(true);
                //validate data
                if (ModelState.IsValid)
                {
                    //call the repository function to save in database
                    caseassessmentRepository.InsertOrUpdate(caseassessment, Request.Form);
                    caseassessmentRepository.Save();
                    //redirect to list page after successful operation
                    return(RedirectToAction(Constants.Views.Index, new { caseId = caseassessment.CaseID, CaseMemberID = caseassessment.CaseMemberID }));
                }
                else
                {
                    foreach (var modelStateValue in ViewData.ModelState.Values)
                    {
                        foreach (var error in modelStateValue.Errors)
                        {
                            caseassessment.ErrorMessage = error.ErrorMessage;
                            break;
                        }
                        if (caseassessment.ErrorMessage.IsNotNullOrEmpty())
                        {
                            break;
                        }
                    }
                }
            }
            catch (CustomException ex)
            {
                caseassessment.ErrorMessage = ex.UserDefinedMessage;
            }
            catch (Exception ex)
            {
                ExceptionManager.Manage(ex);
                caseassessment.ErrorMessage = Constants.Messages.UnhandelledError;
            }
            List <CaseAssessmentLivingCondition> selectedCaseAssessmentLivingConditionList = new List <CaseAssessmentLivingCondition>();

            string[] arraySelectedQOL = caseassessment.QualityOfLifeIDs.ToStringArray(',', true);
            if (arraySelectedQOL != null && arraySelectedQOL.Length > 0)
            {
                foreach (string qolID in arraySelectedQOL)
                {
                    CaseAssessmentLivingCondition newCaseAssessmentLivingCondition = new CaseAssessmentLivingCondition()
                    {
                        QualityOfLifeID       = qolID.ToInteger(true),
                        CaseAssessmentID      = caseassessment.ID,
                        LastUpdateDate        = DateTime.Now,
                        LastUpdatedByWorkerID = caseassessment.LastUpdatedByWorkerID,
                    };
                    newCaseAssessmentLivingCondition.Note = Request.Form["txtQualityOfLifeIDs" + qolID].ToString(true);
                    selectedCaseAssessmentLivingConditionList.Add(newCaseAssessmentLivingCondition);
                }
            }
            WebHelper.CurrentSession.Content.Data = selectedCaseAssessmentLivingConditionList;
            if (caseassessment.CaseMemberID > 0)
            {
                CaseMember caseMember = casememberRepository.Find(caseassessment.CaseMemberID);
                if (caseMember != null)
                {
                    ViewBag.DisplayID = caseMember.DisplayID;
                }
            }
            else
            {
                Case varCase = caseRepository.Find(caseassessment.CaseID);
                if (varCase != null)
                {
                    ViewBag.DisplayID = varCase.DisplayID;
                }
            }
            //return view with error message if operation is failed
            return(View(caseassessment));
        }