// GET: HigherManagement
        public HttpResponseMessage Get()
        {
            var headers  = Request.Headers;
            int fsclYear = 0;
            int corporateOutcomeIndicatorID = 0;

            // Get typeOfResult value from header
            string typeOfResult = headers.Contains("typeOfResult") ? ((string[])headers.GetValues("typeOfResult")).GetValue(0).ToString() : null;
            // Get sectionID value from header
            string sectionID = headers.Contains("sectionID") ? ((string[])headers.GetValues("sectionID")).GetValue(0).ToString() : null;;

            // Get corporateOutcomeIndicatorID from header
            if (headers.Contains("corporateIndicatorID"))
            {
                int.TryParse(((string[])headers.GetValues("corporateIndicatorID")).GetValue(0).ToString(), out corporateOutcomeIndicatorID);
            }
            // Get fsclYear value from header
            if (headers.Contains("fsclYear"))
            {
                int.TryParse(((string[])headers.GetValues("fsclYear")).GetValue(0).ToString(), out fsclYear);
            }

            HigherManagement hm = HMManager.getHigherManagementData(typeOfResult, sectionID, corporateOutcomeIndicatorID, fsclYear); //"Outcome", "82", 52, 2018

            return(Request.CreateResponse(HttpStatusCode.OK, hm));
        }
예제 #2
0
        public static HigherManagement getHigherManagementData(string resultType, string sid, int coid, int fsclYr)
        {
            HigherManagement hm             = new HigherManagement();
            int corporateOutcomeIndicatorID = 0;
            int corporateOutputIndicatorID  = 0;
            int corporateImpactIndicatorID  = 0;

            switch (resultType)
            {
            case "Outcome":
                corporateOutcomeIndicatorID = coid;
                break;

            case "Output":
                corporateOutputIndicatorID = coid;
                break;

            case "Impact":
                corporateImpactIndicatorID = coid;
                break;
            }

            using (ITC_Conn itcDBContext = new ITC_Conn())
            {
                #region #Development Result Data
                var snapshotDetail = from sci in itcDBContext.snapshotCorporateIndicators
                                     where sci.TypeOfResult == resultType &&
                                     sci.SectionID == sid &&
                                     sci.FsclYear == fsclYr &&
                                     (sci.CorporateOutcomeIndicatorID == corporateOutcomeIndicatorID ||
                                      sci.CorporateOutputIndicatorID == corporateOutputIndicatorID ||
                                      sci.CorporateImpactIndicatorID == corporateImpactIndicatorID)
                                     group sci by new
                {
                    sci.TypeOfResult,
                    sci.SectionID,
                    sci.FsclYear
                }
                into sciRes
                    select new
                {
                    T1 = sciRes.Sum(s => s.Target_Q1),
                    A1 = sciRes.Sum(s => s.Actual_Q1),
                    T2 = sciRes.Sum(s => s.Target_Q2),
                    A2 = sciRes.Sum(s => s.Actual_Q2),
                    T3 = sciRes.Sum(s => s.Target_Q3),
                    A3 = sciRes.Sum(s => s.Actual_Q3),
                    T4 = sciRes.Sum(s => s.Target_Q4),
                    A4 = sciRes.Sum(s => s.Actual_Q4),
                };

                if (snapshotDetail.Count() > 0)
                {
                    DevResItem Q1 = new DevResItem("1st", snapshotDetail.First().T1, snapshotDetail.First().A1);
                    DevResItem Q2 = new DevResItem("2nd", snapshotDetail.First().T2, snapshotDetail.First().A2);
                    DevResItem Q3 = new DevResItem("3rd", snapshotDetail.First().T3, snapshotDetail.First().A3);
                    DevResItem Q4 = new DevResItem("4th", snapshotDetail.First().T4, snapshotDetail.First().A4);

                    hm.itcDevResult = new List <DevResItem>()
                    {
                        Q1, Q2, Q3, Q4
                    };
                }

                #endregion

                #region Financial Management Data
                // Hardcoded forthe time being
                List <FinancialMgmtItem> fnMgmtItems = new List <FinancialMgmtItem>()
                {
                    new FinancialMgmtItem(10, 40, "DMD"),
                    new FinancialMgmtItem(30, 5, "DEI"),
                    new FinancialMgmtItem(60, 20, "DCP"),
                };

                hm.itcFinacialMgmtData = fnMgmtItems.ToArray();

                #endregion
            }

            // KPI details

            hm.kpiDetail = new KPI();
            hm.kpiDetail.totalPortfolio     = "$3,450,589";
            hm.kpiDetail.ytdExpenditure     = "$838,698";
            hm.kpiDetail.deliveryRate       = "24%";
            hm.kpiDetail.deliveryProjection = "$3,280,070";
            hm.kpiDetail.expectedDelivery   = "95%";

            return(hm);
        }