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