示例#1
0
        protected static void CreateOneMonthEntry(ISession session, IList <DatahubDataObj> allStudents, string type, int month, int year)
        {
            IList <DatahubDataObj> subsetStudents = new Collection <DatahubDataObj>();

            switch (type.ToLower())
            {
            case "council":
                break;

            case "intermediate zone":
                break;

            case "data zone":
                break;

            case "school":
                break;
            }

            //List<SummaryData> SummaryEntries = new List<SummaryData>();
            IList <AllSchools> AllSchools = session.QueryOver <AllSchools>().List <AllSchools>();

            foreach (AllSchools school in AllSchools)
            {
                IList <DatahubDataObj> allStudentsThisSchool = allStudents.Where(x => x.SEED_Code != null && x.SEED_Code.Equals(school.seedCode)).ToList();
                AberdeenSummary        currentSummary        = CalculateSummaryData(allStudentsThisSchool, school.seedCode, school.name, "School", month, year);

                //SaveRowForEntity(session, currentSummary);
            }

            //foreach (var property in SummaryEntries[0].GetType().GetProperties())
            //{
            //    Console.WriteLine(property.Name + " : " + property.GetValue(SummaryEntries[0]).ToString());
            //}
        }
示例#2
0
        protected static AberdeenSummary CalculateSummaryData(IList <DatahubDataObj> studentData, string datacode, string name, string type, int month, int year)
        {
            // TODO: remove year month and work only with subsetStudent for a given year and month
            // studentData = studentData.Where(x => x.Data_Month == month && x.Data_Year == year).ToList();

            AberdeenSummary summaryData = new AberdeenSummary();

            summaryData.name      = name;
            summaryData.dataCode  = datacode;
            summaryData.dataMonth = month;
            summaryData.dataYear  = year;
            summaryData.type      = type;

            summaryData.movedOutScotlandFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("moved outwith scotland") && x.Gender.ToLower().Equals("female"));
            summaryData.movedOutScotlandMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("moved outwith scotland") && x.Gender.ToLower().Equals("male"));
            summaryData.movedOutScotlandUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("moved outwith scotland") && x.Gender.ToLower().Equals("information not yet obtained"));

            studentData = studentData.Where(x => !(x.Current_Status.ToLower().Equals("moved outwith scotland"))).ToList();

            summaryData.allFemale      = studentData.Count(x => x.Gender.ToLower().Equals("female"));
            summaryData.allMale        = studentData.Count(x => x.Gender.ToLower().Equals("male"));
            summaryData.allUnspecified = studentData.Count(x => x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.all15Female      = studentData.Count(x => x.Age == 15 && x.Gender.ToLower().Equals("female"));
            summaryData.all15Male        = studentData.Count(x => x.Age == 15 && x.Gender.ToLower().Equals("male"));
            summaryData.all15Unspecified = studentData.Count(x => x.Age == 15 && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.all16Female      = studentData.Count(x => x.Age == 16 && x.Gender.ToLower().Equals("female"));
            summaryData.all16Male        = studentData.Count(x => x.Age == 16 && x.Gender.ToLower().Equals("male"));
            summaryData.all16Unspecified = studentData.Count(x => x.Age == 16 && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.all17Female      = studentData.Count(x => x.Age == 17 && x.Gender.ToLower().Equals("female"));
            summaryData.all17Male        = studentData.Count(x => x.Age == 17 && x.Gender.ToLower().Equals("male"));
            summaryData.all17Unspecified = studentData.Count(x => x.Age == 17 && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.all18Female      = studentData.Count(x => x.Age == 18 && x.Gender.ToLower().Equals("female"));
            summaryData.all18Male        = studentData.Count(x => x.Age == 18 && x.Gender.ToLower().Equals("male"));
            summaryData.all18Unspecified = studentData.Count(x => x.Age == 18 && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.all19Female      = studentData.Count(x => x.Age == 19 && x.Gender.ToLower().Equals("female"));
            summaryData.all19Male        = studentData.Count(x => x.Age == 19 && x.Gender.ToLower().Equals("male"));
            summaryData.all19Unspecified = studentData.Count(x => x.Age == 19 && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.activityAgreementFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("female"));
            summaryData.activityAgreementMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("male"));
            summaryData.activityAgreementUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.schoolFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil") && x.Gender.ToLower().Equals("female"));
            summaryData.schoolMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil") && x.Gender.ToLower().Equals("male"));
            summaryData.schoolUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.schoolInTransitionFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil - in transition") && x.Gender.ToLower().Equals("female"));
            summaryData.schoolInTransitionMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil - in transition") && x.Gender.ToLower().Equals("male"));
            summaryData.schoolInTransitionUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("school pupil - in transition") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.activityAgreementFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("female"));
            summaryData.activityAgreementMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("male"));
            summaryData.activityAgreementUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("activity agreement") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.fundStage2Female      = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 2") && x.Gender.ToLower().Equals("female"));
            summaryData.fundStage2Male        = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 2") && x.Gender.ToLower().Equals("male"));
            summaryData.fundStage2Unspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 2") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.fundStage3Female      = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 3") && x.Gender.ToLower().Equals("female"));
            summaryData.fundStage3Male        = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 3") && x.Gender.ToLower().Equals("male"));
            summaryData.fundStage3Unspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 3") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.fundStage4Female      = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 4") && x.Gender.ToLower().Equals("female"));
            summaryData.fundStage4Male        = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 4") && x.Gender.ToLower().Equals("male"));
            summaryData.fundStage4Unspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("employability fund stage 4") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.fullTimeEmploymentFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("full-time employment") && x.Gender.ToLower().Equals("female"));
            summaryData.fullTimeEmploymentMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("full-time employment") && x.Gender.ToLower().Equals("male"));
            summaryData.fullTimeEmploymentUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("full-time employment") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.furtherEducationFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("further education") && x.Gender.ToLower().Equals("female"));
            summaryData.furtherEducationMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("further education") && x.Gender.ToLower().Equals("male"));
            summaryData.furtherEducationUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("further education") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.higherEducationFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("higher education") && x.Gender.ToLower().Equals("female"));
            summaryData.higherEducationMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("higher education") && x.Gender.ToLower().Equals("male"));
            summaryData.higherEducationUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("higher education") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.modernApprenticeshipFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("modern apprenticeship") && x.Gender.ToLower().Equals("female"));
            summaryData.modernApprenticeshipMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("modern apprenticeship") && x.Gender.ToLower().Equals("male"));
            summaryData.modernApprenticeshipUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("modern apprenticeship") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.parttimeEmploymentFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("part-time employment") && x.Gender.ToLower().Equals("female"));
            summaryData.parttimeEmploymentMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("part-time employment") && x.Gender.ToLower().Equals("male"));
            summaryData.parttimeEmploymentUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("part-time employment") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.personalDevelopmentFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("personal/ skills development") && x.Gender.ToLower().Equals("female"));
            summaryData.personalDevelopmentMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("personal/ skills development") && x.Gender.ToLower().Equals("male"));
            summaryData.personalDevelopmentUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("personal/ skills development") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.selfEmployedFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("self-employed") && x.Gender.ToLower().Equals("female"));
            summaryData.selfEmployedMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("self-employed") && x.Gender.ToLower().Equals("male"));
            summaryData.selfEmployedUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("self-employed") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.trainingFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("training (non ntp)") && x.Gender.ToLower().Equals("female"));
            summaryData.trainingMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("training (non ntp)") && x.Gender.ToLower().Equals("male"));
            summaryData.trainingUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("training (non ntp)") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.voluntaryWorkFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("voluntary work") && x.Gender.ToLower().Equals("female"));
            summaryData.voluntaryWorkMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("voluntary work") && x.Gender.ToLower().Equals("male"));
            summaryData.voluntaryWorkUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("voluntary work") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.custodyFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("custody") && x.Gender.ToLower().Equals("female"));
            summaryData.custodyMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("custody") && x.Gender.ToLower().Equals("male"));
            summaryData.custodyUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("custody") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.economicallyInactiveFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("economically inactive") && x.Gender.ToLower().Equals("female"));
            summaryData.economicallyInactiveMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("economically inactive") && x.Gender.ToLower().Equals("male"));
            summaryData.economicallyInactiveUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("economically inactive") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.illHealthFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("unavailable - ill health") && x.Gender.ToLower().Equals("female"));
            summaryData.illHealthMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("unavailable - ill health") && x.Gender.ToLower().Equals("male"));
            summaryData.illHealthUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("unavailable - ill health") && x.Gender.ToLower().Equals("information not yet obtained"));

            summaryData.unemployedFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("unemployed") && x.Gender.ToLower().Equals("female"));
            summaryData.unemployedMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("unemployed") && x.Gender.ToLower().Equals("male"));
            summaryData.unemployedUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("unemployed") && x.Gender.ToLower().Equals("information not yet obtained"));


            summaryData.unknownFemale      = studentData.Count(x => x.Current_Status.ToLower().Equals("unknown") && x.Gender.ToLower().Equals("female"));
            summaryData.unknownMale        = studentData.Count(x => x.Current_Status.ToLower().Equals("unknown") && x.Gender.ToLower().Equals("male"));
            summaryData.unknownUnspecified = studentData.Count(x => x.Current_Status.ToLower().Equals("unknown") && x.Gender.ToLower().Equals("information not yet obtained"));

            var temp = studentData.Where(x => x.Weeks_since_last_Pos_Status != null).DefaultIfEmpty().ToList();

            summaryData.AvgWeek = temp.First() == null ? 0.0 : temp.Average(x => Convert.ToInt16(x.Weeks_since_last_Pos_Status ?? "0"));

            return(summaryData);
        }
示例#3
0
        private static void initialPopulation(ISession session)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            Console.WriteLine("Preparing data for all periods: Started");

            IList <DatahubDataObj> studentDataAllPeriods = session.QueryOver <DatahubDataObj>().List <DatahubDataObj>();
            var   monthYearList = studentDataAllPeriods.Select(x => new { x.Data_Month, x.Data_Year }).ToList().Distinct().ToList();
            IList dataZonesList = session.QueryOver <DataZoneObj>().Where(x => x.Reference_Council == "S12000033").List().Select(x => x.Reference).ToList();
            IList <IntermediateZoneObj> intermediateZonesList = session.QueryOver <IntermediateZoneObj>().Where(x => x.Reference_Council == "S12000033").List();
            IList <AllSchools>          allSchoolsList        = session.QueryOver <AllSchools>().List <AllSchools>();

            stopwatch.Stop();
            Console.WriteLine("Preparing data for all periods: Completed");
            Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
            stopwatch.Reset();


            foreach (var period in monthYearList)
            {
                stopwatch.Start();
                Console.WriteLine("");
                Console.WriteLine("Starting routine for {0}/{1}", period.Data_Month, period.Data_Year);
                int currMonth = period.Data_Month;
                int currYear  = period.Data_Year;

                // Calculate council summary

                Console.WriteLine("Generating summary data and saving to session for Aberdeen City: Started");
                var allCouncilStudentsThisPeriod = getSubsetStudentsByCouncil(studentDataAllPeriods, currMonth, currYear);
                var councilSummary = CalculateSummaryData(allCouncilStudentsThisPeriod, "S12000033", "Aberdeen City", "Council", currMonth, currYear);
                session.Save(councilSummary);

                stopwatch.Stop();
                Console.WriteLine("Generating summary data and saving to session for Aberdeen City: Completed");
                Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
                stopwatch.Reset();

                // Calculate intermediate zones summary
                stopwatch.Start();
                Console.WriteLine("Generating summary data and saving to session for {0} intermediate zones: Started", intermediateZonesList.Count());
                foreach (IntermediateZoneObj intZone in intermediateZonesList)
                {
                    var             allIntermediateZoneStudentsThisPeriod = getSubsetStudentsByZone(session, studentDataAllPeriods, "intermediate zone", intZone.Reference, currMonth, currYear);
                    AberdeenSummary currSummary = CalculateSummaryData(allIntermediateZoneStudentsThisPeriod, intZone.Reference, intZone.Name, "Intermediate Zone", currMonth, currYear);
                    session.Save(currSummary);
                }

                stopwatch.Stop();
                Console.WriteLine("Generating summary data and saving to session for intermediate zones: Completed");
                Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
                stopwatch.Reset();

                // Calculate data zones summary
                stopwatch.Start();
                Console.WriteLine("Generating summary data and saving to session for {0} data zones: Started", dataZonesList.Count);
                foreach (string zonecode in dataZonesList)
                {
                    var             allIntermediateZoneStudentsThisPeriod = getSubsetStudentsByZone(session, studentDataAllPeriods, "Data Zone", zonecode, currMonth, currYear);
                    AberdeenSummary currSummary = CalculateSummaryData(allIntermediateZoneStudentsThisPeriod, zonecode, zonecode, "Data Zone", currMonth, currYear);
                    session.Save(currSummary);
                }

                stopwatch.Stop();
                Console.WriteLine("Generating summary data and saving to session for data zones: Completed");
                Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
                stopwatch.Reset();

                // Calculate all schools summary
                stopwatch.Start();
                Console.WriteLine("Generating summary data and saving to session for {0} schools: Started", allSchoolsList.Count());
                foreach (AllSchools school in allSchoolsList)
                {
                    var             allSchoolStudentsThisPeriod = getSubsetStudentsBySchool(studentDataAllPeriods, school.seedCode, currMonth, currYear);
                    AberdeenSummary currSummary = CalculateSummaryData(allSchoolStudentsThisPeriod, school.seedCode, school.name, "School", currMonth, currYear);
                    session.Save(currSummary);
                }
                stopwatch.Stop();
                Console.WriteLine("Generating summary data and saving to session for schools: Completed");
                Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
                stopwatch.Reset();
            }

            //Test:
            //IList<DatahubDataObj> result = getSubsetStudentsByZone(session, studentDataAllPeriods, "intermediate zone", "S02000024", 08, 2016);
            //IList<DatahubDataObj> result2 = getSubsetStudentsByZone(session, studentDataAllPeriods, "data zone", "S01000011", 08, 2016);
        }