Beispiel #1
0
        // 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));
        }
Beispiel #2
0
        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));
        }