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