예제 #1
0
        private string GetTreeMapData(CitiesStatistic someSitiesStat)
        {
            // full value of data parameter. Should be quoted in view
            string result = "["; //  "data": [

            result += "{            \"label\": \"Україна\",       \"fillcolor\": \"8c8c8c\",  \"value\": \"" + someSitiesStat.TotalServicesProvided + "\",      \"data\":       \r\n\t[ ";


            foreach (CityStatistic city in someSitiesStat.CitiesStats)
            {
                result += " \r\n\t{\r\n\t\t\"label\": \"" + city.City.Name + "\",    \"fillcolor\": \"8c8c8c\",  \"value\": \"" + city.ServicesProvided + "\", \"data\": \r\n\t\t[\r\n";

                OrganizationOperations orgOp = new OrganizationOperations(db);

                foreach (Organization organization in city.City.Organizations)
                {
                    OrganizationStatistic orgStat = orgOp.GetOrganizationStatistic(organization.Id, false);
                    result += "\r\n\t\t\t{\r\n \t\t\t\t\"label\": \"" + organization.Name + "\",  \"value\": \"" + orgStat.TotalServices + "\",  \"sValue\": \"" + orgStat.SummaryIndex.ToString("0.#") + "\" ";
                    result += "\r\n\t\t\t}\r\n\t\t\t ,";
                }
                result  = result.TrimEnd(',');
                result += "\r\n\t\t]\r\n \r\n\t}\r\n\t ,"; // data of city
            }
            result  = result.TrimEnd(',');
            result += "\r\n\t]}\r\n]\r\n";

            result += ",\r\n \"colorrange\": {        \"mapbypercent\": \"1\",        \"gradient\": \"1\",        \"minvalue\": \"0\",        \"code\": ";

            result += "   \"7FFF00\",        \"startlabel\": \"Позитивно\",      \"endlabel\": \"Негативно\",        \"color\": [            {";
            result += "\"code\": \"EE0000\",                \"maxvalue\": \"100\",                \"label\": \"Static\"            },            {                \"code\": \"7FFF00\",                \"maxvalue\": \"100\",                \"label\": \"AVERAGE\"            }        ]    }  ";


            return(result);
        }
        private string GetTreeMapData(OrganizationStatistic someOrgStat)
        {
            // full value of data parameter
            string result = "[";

            result += "{            \"label\": \"" + someOrgStat.Organization.Name + "\",       \"fillcolor\": \"8c8c8c\",  \"value\": \"" + someOrgStat.TotalServices + "\",      \"data\":       \r\n\t[ ";


            foreach (DivisionStatistic division in someOrgStat.DivisionStatistic)
            {
                result += " \r\n\t{\r\n\t\t\"label\": \"" + division.Division.Name + "\",    \"fillcolor\": \"8c8c8c\",  \"value\": \"" + division.ServicesProvided + "\", \"data\": \r\n\t\t[\r\n";

                DivisionsOperations divisionOp = new DivisionsOperations(db);
                divisionOp.FillWorkplacesStatistic(division);

                foreach (WorkplaceStatistic workplaceStatistic in division.WorkplaceStatistics)
                {
                    result += "\r\n\t\t\t{\r\n \t\t\t\t\"label\": \"" + workplaceStatistic.WorkPlace.Name + "\",  \"value\": \"" + workplaceStatistic.ServicesProvided + "\",  \"sValue\": \"" + workplaceStatistic.SummaryIndex.ToString("0.#") + "\" ";
                    result += "\r\n\t\t\t}\r\n\t\t\t ,";
                }
                result  = result.TrimEnd(',');
                result += "\r\n\t\t]\r\n \r\n\t}\r\n\t ,";
            }
            result  = result.TrimEnd(',');
            result += "\r\n\t]}\r\n]\r\n";

            result += ",\r\n \"colorrange\": {        \"mapbypercent\": \"1\",        \"gradient\": \"1\",        \"minvalue\": \"0\",        \"code\": ";

            result += "   \"7FFF00\",        \"startlabel\": \"Позитивно\",      \"endlabel\": \"Негативно\",        \"color\": [            {";
            result += "\"code\": \"EE0000\",                \"maxvalue\": \"100\",                \"label\": \"Static\"            },            {                \"code\": \"7FFF00\",                \"maxvalue\": \"100\",                \"label\": \"AVERAGE\"            }        ]    }  ";


            return(result);
        }
예제 #3
0
        // shows ordered list of divisions
        public ActionResult Organization(int id)
        {
            OrganizationStatistic  someOrgStat = new OrganizationStatistic(db, db.Organizations.Find(id));
            OrganizationOperations orgOp       = new OrganizationOperations(db);

            someOrgStat = orgOp.GetOrganizationStatistic(id, false);
            orgOp.FillDivisionsStatistic(someOrgStat, false);
            return(View(someOrgStat));
        }
        // organization has divisions. It fills their indexes here
        public void FillDivisionsStatistic(OrganizationStatistic someOrgStat, bool fillSubitems)
        {
            someOrgStat.DivisionStatistic.Clear();
            DivisionsOperations divisionOp = new DivisionsOperations(db);

            foreach (Division item in someOrgStat.Organization.Divisions.ToList())
            {
                DivisionStatistic someDivStat = new DivisionStatistic(db, item);
                someDivStat = divisionOp.GetDivisionStatistic(item.Id, fillSubitems);
                someOrgStat.DivisionStatistic.Add(someDivStat);
            }
        }
        public string GetSummaryDivisionsStat(OrganizationStatistic someOrganizationsStat)
        {
            string result = "[ ";

            foreach (DivisionStatistic item in someOrganizationsStat.DivisionStatistic.OrderByDescending(m => m.SummaryIndex))
            {
                result += "{ 'label': '" + item.Division.Name + "',";
                result += " 'value': '" + item.SummaryIndex + "'}, ";
            }
            result = result.TrimEnd(',') + " ]";
            return(result);
        }
        public OrganizationStatistic GetOrganizationStatistic(int id, bool fillSubitems)
        {
            Organization          someOrganization = db.Organizations.Find(id);
            OrganizationStatistic someOrgStat      = new OrganizationStatistic(db, someOrganization);

            someOrgStat.TotalServices = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Worker.WorkPlace.Division.OrganizationId == someOrganization.Id).Count();

            someOrgStat.SuccessServices = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Value == 1).Where(m => m.Worker.WorkPlace.Division.OrganizationId == someOrganization.Id).Count();

            someOrgStat.FailedServices = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Value == -1).Where(m => m.Worker.WorkPlace.Division.OrganizationId == someOrganization.Id).Count();

            someOrgStat.SummaryIndex = ((double)100 / (((double)someOrgStat.SuccessServices + (double)someOrgStat.FailedServices) / (double)someOrgStat.FailedServices));

            FillDivisionsStatistic(someOrgStat, fillSubitems);

            someOrgStat.TreeMapData = GetTreeMapData(someOrgStat);

            return(someOrgStat);
        }
예제 #7
0
        public CityStatistic GetCityStatistic(City someCity)
        {
            CityStatistic result = new CityStatistic(db, someCity);

            result.ServicesProvided       = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Worker.WorkPlace.Division.Organization.CityId == someCity.Id).Count();
            result.FailedServicesProvided = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Value == -1).Where(m => m.Worker.WorkPlace.Division.Organization.CityId == someCity.Id).Count();

            result.SuccessServicesProvided = db.ServiceToClients.Where(m => m.ValueSet.HasValue).Where(m => m.Value == 1).Where(m => m.Worker.WorkPlace.Division.Organization.CityId == someCity.Id).Count();

            result.SummaryIndex = ((double)100 / (((double)result.SuccessServicesProvided + (double)result.FailedServicesProvided) / (double)result.FailedServicesProvided));

            OrganizationOperations orgOp = new OrganizationOperations(db);

            foreach (Organization item in someCity.Organizations)
            {
                OrganizationStatistic someOrgStat = orgOp.GetOrganizationStatistic(item.Id, false);
                result.OrganizationStatistic.Add(someOrgStat);
            }

            result.TreeMapData = GetTreeMapData(result);


            return(result);
        }