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); }
// 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); } }