コード例 #1
0
        public ActionResult CorporateReport_Data(SearchCorporateER search, int LevelIdentifier)
        {
            try
            {
                //Mock Survey Status Parameter. Corporate Reports displays data after Mock Survey Recommendations are approved.
                search.MockSurveyStatusID = (int)MockSurveyStatus.Publish_CCA_Recommendation;

                JsonResult jr = new JsonResult();
                if (search.ProgramIDs == "-1")
                {
                    search.ProgramIDs = null;
                }
                if (search.SelectedChapterIDs == "-1")
                {
                    search.SelectedChapterIDs = null;
                }
                if (search.SelectedStandardIDs == "-1")
                {
                    search.SelectedStandardIDs = null;
                }
                if (search.SelectedMockSurveyIDs == "-1")
                {
                    search.SelectedMockSurveyIDs = null;
                }
                if (search.SelectedMockSurveyLeadIDs == "-1")
                {
                    search.SelectedMockSurveyLeadIDs = null;
                }
                if (search.SelectedMockSurveyMemberIDs == "-1")
                {
                    search.SelectedMockSurveyMemberIDs = null;
                }

                string JCREmailDomain  = "@JCRINC.COM";
                string JCREmailDomain2 = "@JCAHO.COM";
                string encryptionKey   = ConfigurationManager.AppSettings.Get("EncryptionKey");

                switch (LevelIdentifier)
                {
                case (int)WebConstants.CorporateSummaryLevels.Level1_Program:
                {
                    List <CorpProgramFinding> Level1Data = new List <CorpProgramFinding>();
                    Level1Data = CorporateFinding.GetCorpFindingByProgram(search);

                    jr = Json(Level1Data, JsonRequestBehavior.AllowGet);
                    break;
                }

                case (int)WebConstants.CorporateSummaryLevels.Level2_Chapter:
                {
                    if (search.IsDuplicateLoadCall)
                    {
                        jr = TempData["ACS_Level2Data"] as JsonResult;
                    }
                    else
                    {
                        List <CorpChapterFinding> Level2Data = new List <CorpChapterFinding>();
                        Level2Data = CorporateFinding.GetCorpFindingByChapter(search);
                        jr         = Json(Level2Data, JsonRequestBehavior.AllowGet);
                        TempData["ACS_Level2Data"] = jr;
                    }
                    break;
                }

                case (int)WebConstants.CorporateSummaryLevels.Level3_Standard:
                {
                    if (search.IsDuplicateLoadCall)
                    {
                        jr = TempData["ACS_Level3Data"] as JsonResult;
                    }
                    else
                    {
                        List <CorpStandardFinding> Level3Data = new List <CorpStandardFinding>();
                        Level3Data = CorporateFinding.GetCorpFindingByStandard(search);

                        var max = Convert.ToInt32(Level3Data.Max(r => r.CumulativePercentage));
                        Session["MaxStandardCount"] = max >= 100 ? 100 : max;

                        jr = Json(Level3Data, JsonRequestBehavior.AllowGet);
                        TempData["ACS_Level3Data"] = jr;
                    }
                    break;
                }

                case (int)WebConstants.CorporateSummaryLevels.Level4_EP:
                {
                    string tjcFinding = string.Empty;
                    List <CorpEPFinding> Level4Data = new List <CorpEPFinding>();

                    Level4Data = CorporateFinding.GetCorpFindingByEP(search);

                    if (!AppSession.EmailAddress.ToUpper().Contains(JCREmailDomain) && !AppSession.EmailAddress.ToUpper().Contains(JCREmailDomain2))
                    {
                        Level4Data.ToList().ForEach(data => { data.TJCFinding = CryptHelpers.RFIDecrypt(data.TJCFinding, encryptionKey); });
                    }
                    else
                    {
                        Level4Data.ToList().ForEach(data => data.TJCFinding = string.Empty);
                    }

                    jr = Json(Level4Data, JsonRequestBehavior.AllowGet);
                    break;
                }

                case (int)WebConstants.CorporateSummaryLevels.Level5_EPDetails:
                {
                    List <CorpStandardFinding> Level5Data = new List <CorpStandardFinding>();
                    Level5Data = CorporateFinding.GetCorpFindingByStandard(search);
                    jr         = Json(Level5Data, JsonRequestBehavior.AllowGet);
                    break;
                }
                }

                jr.MaxJsonLength  = Int32.MaxValue;
                jr.RecursionLimit = 100;
                return(jr);
            }
            catch (Exception ex)
            {
                ExceptionLog exceptionLog = new ExceptionLog
                {
                    ExceptionText = "Reports: " + ex.Message,
                    PageName      = "CorporatePriorityFinding",
                    MethodName    = "AMPCorporateSummaryCorporateReport_Data",
                    UserID        = Convert.ToInt32(AppSession.UserID),
                    SiteId        = Convert.ToInt32(AppSession.SelectedSiteId),
                    TransSQL      = "",
                    HttpReferrer  = null
                };
                exceptionService.LogException(exceptionLog);

                return(RedirectToAction("Error", "Transfer"));
            }
        }