// GET: CaseManagement/CaseActionNew public ActionResult Edit(int caseId, int caseGoalId, int caseActionId) { CaseActionNew caseactionnew = new CaseActionNew(); if (caseGoalId > 0) { //find an existing casemember from database Case varCase = caseRepository.Find(Convert.ToInt32(caseId)); ViewBag.DisplayID = varCase.DisplayID; ViewBag.CaseID = caseId; caseactionnew = caseactionnewRepository.Find(caseActionId); caseactionnew.OLDCaseMemberID = caseactionnew.CaseMemberID; caseactionnew.OLDWorkerID = caseactionnew.WorkerID; caseactionnew.OLDServiceProviderID = caseactionnew.ServiceProviderID; caseactionnew.OLDAssigneeOther = caseactionnew.AssigneeOther; caseactionnew.OLDSubjectMatterExpertOther = caseactionnew.SubjectMatterExpertOther; if (caseactionnew.ServiceProviderID == 56) { caseactionnew.ServiceProviderOther = caseactionnew.AssigneeOther; } caseactionnew.RegionID = varCase.RegionID; caseactionnew.CaseID = caseId; bool hasAccess = workerroleactionpermissionnewRepository.HasPermission(Convert.ToInt32(caseId), CurrentLoggedInWorkerRoleIDs, CurrentLoggedInWorker.ID, varCase.ProgramID, varCase.RegionID, varCase.SubProgramID, varCase.JamatkhanaID, Constants.Areas.CaseManagement, Constants.Controllers.CaseMember, Constants.Actions.Edit, true); if (!hasAccess) { WebHelper.CurrentSession.Content.ErrorMessage = "You are not eligible to do this action"; return(RedirectToAction(Constants.Actions.AccessDenied, Constants.Controllers.Home, new { Area = String.Empty })); } //casegoalnew = caseGoalNewRepository.Find(caseGoalId); CaseGoalEditVM casegoalnew = caseGoalNewRepository.GetCaseGoal(caseGoalId); if (casegoalnew == null) { //throw an exception if id is provided but data does not exist in database return(new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound, "Case goal not found")); } else { } } else { //create a new instance if id is not provided //casegoalnew = new CaseGoalNew(); //casegoalnew.CaseID = caseId.ToInteger(true); return(new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound, "Case goal not found")); } ViewBag.ContactMediaList = contactmediaRepository.AllActiveForDropDownList; caseactionnew.GoalActionWorkNote = new GoalActionWorkNote(); return(View("Create", caseactionnew)); }
public ActionResult Create(CaseActionNew varCaseGoalNew) { int sortOrder = 0, count = 0; varCaseGoalNew.LastUpdatedByWorkerID = CurrentLoggedInWorker.ID; try { bool isvalid = true; if (ModelState.IsValid) { //call the repository function to save in database if (varCaseGoalNew.CaseMemberID.HasValue && varCaseGoalNew.CaseMemberID.Value > 0) { if (!varCaseGoalNew.FamilyAgreeToAction) { varCaseGoalNew.ErrorMessage = "Please confirm family member has agreed to the Action."; isvalid = false; } } else if (varCaseGoalNew.GoalAssigneeRoleID > 0) { if (!varCaseGoalNew.CaseMemberID.HasValue && !varCaseGoalNew.ServiceProviderID.HasValue && !varCaseGoalNew.WorkerID.HasValue && string.IsNullOrEmpty(varCaseGoalNew.ServiceProviderOther) && string.IsNullOrEmpty(varCaseGoalNew.AssigneeOther) && string.IsNullOrEmpty(varCaseGoalNew.SubjectMatterExpertOther)) { varCaseGoalNew.ErrorMessage = "Please select or enter assignee to (service provider / family member / subject matter expert / other.)"; isvalid = false; } if (varCaseGoalNew.GoalAssigneeRoleID == 5 && string.IsNullOrEmpty(varCaseGoalNew.AssigneeOther)) { varCaseGoalNew.ErrorMessage = "Please enter assignee to other.)"; isvalid = false; } if (varCaseGoalNew.WorkerID == 0 && string.IsNullOrEmpty(varCaseGoalNew.SubjectMatterExpertOther)) { varCaseGoalNew.ErrorMessage = "Please enter assignee to other.)"; isvalid = false; } if (varCaseGoalNew.ServiceProviderID == 56 && string.IsNullOrEmpty(varCaseGoalNew.ServiceProviderOther)) { varCaseGoalNew.ErrorMessage = "Please enter assignee to other.)"; isvalid = false; } } if (isvalid) { if (!varCaseGoalNew.ActionStatusID.HasValue) { varCaseGoalNew.ActionStatusID = (int)GoalWorkNote.Inprogress; } count = caseactionnewRepository.CaseGoalActionNewCountByCaseID(varCaseGoalNew.CaseID); if (count >= 0) { sortOrder = count + 1; } varCaseGoalNew.SortOrder = sortOrder; caseactionnewRepository.InsertOrUpdate(varCaseGoalNew); caseactionnewRepository.Save(); if (varCaseGoalNew.GoalActionWorkNote.ContactMethodID > 0) { varCaseGoalNew.GoalActionWorkNote.LastUpdatedByWorkerID = CurrentLoggedInWorker.ID; varCaseGoalNew.GoalActionWorkNote.IsAction = true; varCaseGoalNew.GoalActionWorkNote.CaseGoalID = varCaseGoalNew.CaseGoalID; varCaseGoalNew.GoalActionWorkNote.CaseActionID = varCaseGoalNew.ID; varCaseGoalNew.GoalActionWorkNote.StatusID = (int)GoalWorkNote.Inprogress; goalActionWorkNoteRepository.InsertOrUpdate(varCaseGoalNew.GoalActionWorkNote); goalActionWorkNoteRepository.Save(); } return(RedirectToAction(Constants.Actions.Index, Constants.Controllers.CaseActionNew, new { caseId = varCaseGoalNew.CaseID, caseGoalId = varCaseGoalNew.CaseGoalID })); } } else { foreach (var modelStateValue in ViewData.ModelState.Values) { foreach (var error in modelStateValue.Errors) { varCaseGoalNew.ErrorMessage = error.ErrorMessage; break; } if (varCaseGoalNew.ErrorMessage.IsNotNullOrEmpty()) { break; } } //return RedirectToAction(Constants.Actions.Create, Constants.Controllers.CaseActionNew, new { caseId = varCaseGoalNew.CaseID, caseGoalId = varCaseGoalNew.CaseGoalID }); //varCaseGoalNew.ErrorMessage = "Record not saved"; //ViewBag.MessageErr = "Record not saved"; //return RedirectToAction(Constants.Actions.Index, Constants.Controllers.CaseGoalNew, new { caseID = varCaseGoalNew.CaseID }); } } catch (CustomException ex) { varCaseGoalNew.ErrorMessage = ex.UserDefinedMessage; } catch (Exception ex) { ExceptionManager.Manage(ex); varCaseGoalNew.ErrorMessage = Constants.Messages.UnhandelledError; } return(View(varCaseGoalNew)); }