Example #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));
        }
Example #2
0
 public ActionResult Edit(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)
         {
             //<JL:Comment:No need to check access again on post. On edit we are already checking permission.>
             //List<CaseWorker> caseworker = caseworkerRepository.FindAllByCaseID(caseId).Where(x => x.WorkerID == CurrentLoggedInWorker.ID).ToList();
             //if ((caseworker == null || caseworker.Count() == 0) && caseassessment.ID > 0 && caseassessment.CreatedByWorkerID != CurrentLoggedInWorker.ID && CurrentLoggedInWorkerRoleIDs.IndexOf(1) == -1 && (CurrentLoggedInWorkerRoleIDs.IndexOf(SiteConfigurationReader.RegionalManagerRoleID) == -1))
             //{
             //    WebHelper.CurrentSession.Content.ErrorMessage = "You are not eligible to do this action";
             //    //return Json(new { success = true, url = Url.Action(Constants.Actions.AccessDenied, Constants.Controllers.Home, new { Area = String.Empty }) });
             //    return RedirectToAction(Constants.Actions.AccessDenied, Constants.Controllers.Home, new { Area = String.Empty });
             //}
             //</JL:Comment:07/08/2017>
             //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 });
             return(RedirectToAction(Constants.Views.Index, new { caseId = caseassessment.CaseID }));
         }
         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;
     }
     try
     {
         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;
             }
         }
     }
     catch { }
     //return view with error message if the operation is failed
     return(View(caseassessment));
 }
        /// <summary>
        /// Add or Update caseassessment to database
        /// </summary>
        /// <param name="caseassessment">data to save</param>
        public void InsertOrUpdate(CaseAssessment caseassessment, NameValueCollection data)
        {
            bool isNew = false;

            caseassessment.LastUpdateDate = DateTime.Now;
            if (caseassessment.ID == default(int))
            {
                //set the date when this record was created
                caseassessment.CreateDate = caseassessment.LastUpdateDate;
                //set the id of the worker who has created this record
                caseassessment.CreatedByWorkerID = caseassessment.LastUpdatedByWorkerID;
                //add a new record to database
                context.CaseAssessment.Add(caseassessment);
                isNew = true;
            }
            else
            {
                //update an existing record to database
                context.Entry(caseassessment).State = System.Data.Entity.EntityState.Modified;
            }
            Save();
            if (caseassessment.ID > 0)
            {
                CaseMember existingCaseMember = context.CaseMember.SingleOrDefault(item => item.ID == caseassessment.CaseMemberID);
                if (existingCaseMember != null)
                {
                    try
                    {
                        existingCaseMember.MemberStatusID        = caseassessment.MemberStatusID;
                        existingCaseMember.LastUpdateDate        = DateTime.Now;
                        existingCaseMember.LastUpdatedByWorkerID = caseassessment.LastUpdatedByWorkerID;
                        context.Entry(existingCaseMember).State  = System.Data.Entity.EntityState.Modified;
                        Save();
                    }
                    catch
                    {
                        context.Entry(existingCaseMember).State = System.Data.Entity.EntityState.Detached;
                    }
                }
                List <CaseAssessmentLivingCondition> existingQOLList = new List <CaseAssessmentLivingCondition>();
                if (!isNew)
                {
                    existingQOLList = caseassessmentlivingconditionRepository.FindAllByCaseAssessmentID(caseassessment.ID).ToList();
                    if (existingQOLList == null)
                    {
                        existingQOLList = new List <CaseAssessmentLivingCondition>();
                    }
                }

                string selectedQOL = caseassessment.QualityOfLifeIDs;
                selectedQOL = selectedQOL.Replace("false", string.Empty);
                string[] arraySelectedQOL = selectedQOL.ToStringArray(',', true);
                if (arraySelectedQOL != null && arraySelectedQOL.Length > 0)
                {
                    foreach (string qolID in arraySelectedQOL)
                    {
                        if (existingQOLList.Where(item => item.QualityOfLifeID == qolID.ToInteger(true)).Count() == 0)
                        {
                            CaseAssessmentLivingCondition newCaseAssessmentLivingCondition = new CaseAssessmentLivingCondition()
                            {
                                QualityOfLifeID       = qolID.ToInteger(true),
                                CaseAssessmentID      = caseassessment.ID,
                                LastUpdateDate        = DateTime.Now,
                                LastUpdatedByWorkerID = caseassessment.LastUpdatedByWorkerID,
                            };
                            newCaseAssessmentLivingCondition.Note = data["txtQualityOfLifeIDs" + qolID].ToString(true);
                            caseassessmentlivingconditionRepository.InsertOrUpdate(newCaseAssessmentLivingCondition);
                            caseassessmentlivingconditionRepository.Save();
                        }
                        else
                        {
                            CaseAssessmentLivingCondition caseAssessmentLivingCondition = caseassessmentlivingconditionRepository.Find(caseassessment.ID, qolID.ToInteger(true));
                            if (caseAssessmentLivingCondition != null)
                            {
                                caseAssessmentLivingCondition.Note           = data["txtQualityOfLifeIDs" + qolID].ToString(true);
                                caseAssessmentLivingCondition.LastUpdateDate = DateTime.Now;
                                caseassessmentlivingconditionRepository.InsertOrUpdate(caseAssessmentLivingCondition);
                                caseassessmentlivingconditionRepository.Save();
                            }
                        }
                    }
                }

                foreach (CaseAssessmentLivingCondition existingQOL in existingQOLList)
                {
                    if (arraySelectedQOL == null || !arraySelectedQOL.Contains(existingQOL.QualityOfLifeID.ToString(true)))
                    {
                        caseassessmentlivingconditionRepository.Delete(existingQOL);
                        caseassessmentlivingconditionRepository.Save();
                    }
                }

                CaseWorker primaryWorker = caseworkerRepository.FindPrimary(caseassessment.CaseID);
                if (primaryWorker != null)
                {
                    string             caseLink           = "/CaseManagement/CaseAssessment?CaseID=" + caseassessment.CaseID + "&CaseMemberID=" + caseassessment.CaseMemberID;
                    WorkerNotification workerNotification = new WorkerNotification()
                    {
                        IsRead                = false,
                        LastUpdateDate        = DateTime.Now,
                        LastUpdatedByWorkerID = caseassessment.LastUpdatedByWorkerID,
                        ReferenceLink         = caseLink,
                        WorkerID              = primaryWorker.WorkerID
                    };
                    if (isNew)
                    {
                        workerNotification.Notification = "A new assessment has been added to a case. Please <a href='" + caseLink + "' target='_blank'>click here</a> to see the assessment detail.";
                    }
                    else
                    {
                        workerNotification.Notification = "An assessment has been updated. Please <a href='" + caseLink + "' target='_blank'>click here</a> to see the assessment detail.";
                    }
                    workernotificationRepository.InsertOrUpdate(workerNotification);
                    workernotificationRepository.Save();
                }
            }
        }