Beispiel #1
0
        public Dictionary <IndicatorContainerType, Dictionary <IndicatorLabelContentCategory, List <IndicatorRepContainer> > > IndicatorReportCore(
            IQueryable <Project> prjList, FinReportFilter frepf, List <String> Area, List <String> gtype,
            List <String> compete, List <String> status, List <String> oblast, List <String> period, List <String> amount, List <String> indicatorcategory)
        {
            AppDropDownsService ServiceDDL = new AppDropDownsService();
            List <IndicatorLabelContentCategory> IndContCats = new List <IndicatorLabelContentCategory>();
            var regions     = new List <RegionList>();
            var areas       = new List <ProgramAreaList>();
            var statusList  = new List <ProposalStatusList>();
            var gtypeList   = new List <GrantTypeList>();
            var competeList = new List <CompetitionCodeList>();

            //create IndicatorContentCategory List to be passed.
            if (indicatorcategory != null)
            {
                foreach (string s in indicatorcategory)
                {
                    IndContCats.Add(ServiceDDL.GetIndicatorLabelContentCategory(Convert.ToInt32(s)));
                }
            }

            var LLVsContainer = new Dictionary <IndicatorContainerType, Dictionary <IndicatorLabelContentCategory, List <IndicatorRepContainer> > >();

            // Dictionary<ContainerType, List<VsContainer>> LLVsContainer = null;
            if (oblast != null && oblast.Count > 0 && indicatorcategory != null && indicatorcategory.Count > 0)
            {
                //create RegionsList List to be passed.
                foreach (string s in oblast)
                {
                    if (!s.Contains("All"))   //skip ALL.
                    {
                        regions.Add(ServiceDDL.GetRegionList().FirstOrDefault(w => w.DDID == Convert.ToInt32(s)));
                    }
                }
                var result = FillContainer(prjList, frepf, IndicatorContainerType.OblastVsIndicatorLabelCategory,
                                           IndContCats, regions, null, null, null);
                LLVsContainer.Add(IndicatorContainerType.OblastVsIndicatorLabelCategory, result);
            }

            if (Area != null && Area.Count > 0 && indicatorcategory != null && indicatorcategory.Count > 0)
            {
                foreach (string s in Area)
                {
                    if (!s.Contains("All"))   //skip ALL.
                    {
                        areas.Add(ServiceDDL.GetProgramAreaList().FirstOrDefault(w => w.ProgramAreaCodeID == Convert.ToInt32(s)));
                    }
                }
                var result = FillContainer(prjList, frepf, IndicatorContainerType.AreaVsIndicatorLabelCategory,
                                           IndContCats, null, areas, null, null);
                LLVsContainer.Add(IndicatorContainerType.AreaVsIndicatorLabelCategory, result);
            }

            if (gtype != null && gtype.Count > 0 && indicatorcategory != null && indicatorcategory.Count > 0)
            {
                foreach (string s in gtype)
                {
                    if (!s.Contains("All"))   //skip ALL.
                    {
                        gtypeList.Add(ServiceDDL.GetGrantTypeList().FirstOrDefault(w => w.GrantTypeCodeID == Convert.ToInt32(s)));
                    }
                }
                var result = FillContainer(prjList, frepf, IndicatorContainerType.TypeVsIndicatorLabelCategory,
                                           IndContCats, null, null, gtypeList, null);
                LLVsContainer.Add(IndicatorContainerType.TypeVsIndicatorLabelCategory, result);
            }

            if (compete != null && compete.Count > 0 && indicatorcategory != null && indicatorcategory.Count > 0)
            {
                foreach (string s in compete)
                {
                    if (!s.Contains("All"))   //skip ALL.
                    {
                        competeList.Add(ServiceDDL.GetCompetitionCodeList().FirstOrDefault(w => w.CompetitionCodeID == Convert.ToInt32(s)));
                    }
                }
                var result = FillContainer(prjList, frepf, IndicatorContainerType.RoundVsIndicatorLabelCategory,
                                           IndContCats, null, null, null, competeList);
                LLVsContainer.Add(IndicatorContainerType.RoundVsIndicatorLabelCategory, result);
            }
            bool areaVsRound = false;

            //more coming here.


            return(LLVsContainer);
        }