// shows ordered list of workers public ActionResult Worker(int id) { WorkerStatistic someWorkerStat = new WorkerStatistic(db, db.Workers.Find(id)); WorkerOperations workerOp = new WorkerOperations(db); someWorkerStat = workerOp.FillWorkerStatistic(db.Workers.Find(id)); return(View(someWorkerStat)); }
public void FillWorkersStatistic(WorkplaceStatistic someWorkPlaceStat) { someWorkPlaceStat.WorkersStatistics.Clear(); WorkerOperations workerOp = new WorkerOperations(db); foreach (Worker item in someWorkPlaceStat.WorkPlace.Workers) { WorkerStatistic someWorkerStat = workerOp.FillWorkerStatistic(item); someWorkPlaceStat.WorkersStatistics.Add(someWorkerStat); } }
public WorkerStatistic FillWorkerStatistic(Worker someWorker) { WorkerStatistic result = new WorkerStatistic(db, someWorker); result.ServicesProvided = db.ServiceToClients.Where(m => m.WorkerId == someWorker.Id).Where(m => m.ValueSet.HasValue).Count(); result.SuccessServicesProvided = db.ServiceToClients.Where(m => m.WorkerId == someWorker.Id).Where(m => m.ValueSet.HasValue).Where(m => m.Value == 1).Count(); result.FailedServicesProvided = db.ServiceToClients.Where(m => m.WorkerId == someWorker.Id).Where(m => m.ValueSet.HasValue).Where(m => m.Value == -1).Count(); result.SummaryIndex = ((double)100 / (((double)result.SuccessServicesProvided + (double)result.FailedServicesProvided) / (double)result.FailedServicesProvided)); FillServicesData(result); return(result); }
private string GetDetailedTreeMapData(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"; IEnumerable <Worker> someWorkers = db.Workers.Where(m => m.WorkPlace.Division.Organization.CityId == city.City.Id).OrderByDescending(m => m.ServicesToClients.Count()); foreach (Worker worker in someWorkers) { WorkerOperations workerOp = new WorkerOperations(db); WorkerStatistic someWorkerStat = workerOp.FillWorkerStatistic(worker); result += "\r\n\t\t\t{\r\n \t\t\t\t\"label\": \"" + worker.AspNetUser.Name + "\", \"value\": \"" + worker.ServicesToClients.Where(m => m.ValueSet.HasValue).Count() + "\", \"sValue\": \"" + someWorkerStat.SummaryIndex.ToString("0.#") + "\" "; result += "\r\n\t\t\t}\r\n\t\t\t ,"; } /* * 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); }
public void FillServicesData(WorkerStatistic someWorkerStatistic) { // someWorkerStatistic.ServiceData = new List<WorkerStatistic.ServicesData>(); IEnumerable <ServiceType> providedServiceTypes = db.ServiceTypes.Where(m => m.ProvidedServices.Where(n => n.ValueSet.HasValue).Where(n => n.WorkerId == someWorkerStatistic.Worker.Id).Any()).OrderBy(m => m.Id); foreach (ServiceType item in providedServiceTypes) { ServicesData someServiceData = new ServicesData(item); someServiceData.ServicesToClients = item.ProvidedServices.Where(n => n.ValueSet.HasValue).Where(n => n.WorkerId == someWorkerStatistic.Worker.Id).ToList(); /* * OneServiceData someOneServiceDate = new OneServiceData(); * * someOneServiceDate.PositiveServices = db.ServiceToClients.Where(m => m.WorkerId == someWorkerStatistic.Worker.Id).Where(m => m.ServiceTypeId == item.Id).Where(m => m.Value == 1); * someOneServiceDate.NegativeServices = db.ServiceToClients.Where(m => m.WorkerId == someWorkerStatistic.Worker.Id).Where(m => m.ServiceTypeId == item.Id).Where(m => m.Value == -1); * someOneServiceDate.UnknownServices = db.ServiceToClients.Where(m => m.WorkerId == someWorkerStatistic.Worker.Id).Where(m => m.ServiceTypeId == item.Id).Where(m => m.ValueSet == null); * */ someWorkerStatistic.ServiceData.Add(someServiceData); } }
// for charts // 3 lines on one graph: total services provided, satisfied, not satisfied. by months, by services public string GetSummaryWorkerStatToDel(WorkerStatistic someWorkerStat) { string result = "[ "; /* * foreach (WorkerStatistic item in someWorkerStat.ServicesToClients.OrderByDescending(m => m.)) * { * result += "{ 'label': '" + item.Worker.AspNetUser.Name + "',"; * result += " 'value': '" + item.SummaryIndex + "'}, "; * } */ /* * foreach (WorkerStatistic item in someWorkerStat.WorkersStatistics.OrderByDescending(m => m.SummaryIndex)) * { * result += "{ 'label': '" + item.Worker.AspNetUser.Name + "',"; * result += " 'value': '" + item.SummaryIndex + "'}, "; * } */ result = result.TrimEnd(',') + " ]"; return(result); }