Пример #1
0
        private string GetTreeMapData(CityStatistic someCityStat)
        {
            // full value of data parameter
            string result = "[";

            result += "{            \"label\": \"" + someCityStat.City.Name + "\",       \"fillcolor\": \"8c8c8c\",  \"value\": \"" + someCityStat.ServicesProvided + "\",      \"data\":       \r\n\t[ ";


            foreach (OrganizationStatistic organization in someCityStat.OrganizationStatistic)
            {
                result += " \r\n\t{\r\n\t\t\"label\": \"" + organization.Organization.Name + "\",    \"fillcolor\": \"8c8c8c\",  \"value\": \"" + organization.TotalServices + "\", \"data\": \r\n\t\t[\r\n";

                DivisionsOperations divOp = new DivisionsOperations(db);

                foreach (DivisionStatistic division in organization.DivisionStatistic)
                {
                    DivisionStatistic divisionStat = divOp.GetDivisionStatistic(division.Division.Id, false);
                    result += "\r\n\t\t\t{\r\n \t\t\t\t\"label\": \"" + division.Division.Name + "\",  \"value\": \"" + divisionStat.ServicesProvided + "\",  \"sValue\": \"" + divisionStat.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);
        }
Пример #2
0
        // shows ordered list of workplaces
        public ActionResult Division(int id)
        {
            DivisionStatistic   someDivisionStat = new DivisionStatistic(db, db.Divisions.Find(id));
            DivisionsOperations divOp            = new DivisionsOperations(db);

            someDivisionStat = divOp.GetDivisionStatistic(id, false);
            divOp.FillWorkplacesStatistic(someDivisionStat);
            return(View(someDivisionStat));
        }
        public void FillWorkplacesStatistic(DivisionStatistic someDivisionStatistic)
        {
            WorkplacesOperations workplaceOp = new WorkplacesOperations(db);

            someDivisionStatistic.WorkplaceStatistics.Clear();

            foreach (WorkPlace item in someDivisionStatistic.Division.WorkPlaces)
            {
                WorkplaceStatistic someWorkplaceStat = workplaceOp.GetWorkplacesStatistic(item.Id, false);
                someDivisionStatistic.WorkplaceStatistics.Add(someWorkplaceStat);
            }
        }
        public string RenderWorkplacesStatistic(DivisionStatistic someDivisionStat)
        {
            string result = "[ ";

            foreach (WorkplaceStatistic item in someDivisionStat.WorkplaceStatistics.OrderByDescending(m => m.SummaryIndex))
            {
                result += "{ 'label': '" + item.WorkPlace.Name + "',";
                result += " 'value': '" + item.SummaryIndex + "'}, ";
            }
            result = result.TrimEnd(',') + " ]";
            return(result);
        }
        // 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 DivisionStatistic GetDivisionStatistic(int divisionId, bool fillSubelements)
        {
            Division someDivision = db.Divisions.Find(divisionId);


            DivisionStatistic result = new DivisionStatistic(db, someDivision);

            foreach (WorkPlace item in someDivision.WorkPlaces)
            {
                result.ServicesProvided        += db.ServiceToClients.Where(m => m.Worker.WorkPlaceId == item.Id).Where(m => m.ValueSet.HasValue).Count();
                result.SuccessServicesProvided += db.ServiceToClients.Where(m => m.Value == 1).Where(m => m.Worker.WorkPlaceId == item.Id).Where(m => m.ValueSet.HasValue).Count();
                result.FailedServicesProvided  += db.ServiceToClients.Where(m => m.Value == -1).Where(m => m.Worker.WorkPlaceId == item.Id).Where(m => m.ValueSet.HasValue).Count();
            }

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

            if (fillSubelements)
            {
                FillWorkplacesStatistic(result);
            }

            return(result);
        }