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)); }