// shows ordered list of workers public ActionResult Workplace(int id) { WorkplaceStatistic someWorkplaceStat = new WorkplaceStatistic(db, db.WorkPlaces.Find(id)); WorkplacesOperations workplaceOp = new WorkplacesOperations(db); someWorkplaceStat = workplaceOp.GetWorkplacesStatistic(id, false); workplaceOp.FillWorkersStatistic(someWorkplaceStat); return(View(someWorkplaceStat)); }
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); } }
// for charts public string RenderWorkersStatistic(WorkplaceStatistic someWorkplaceStat) { string result = "[ "; foreach (WorkerStatistic item in someWorkplaceStat.WorkersStatistics.OrderByDescending(m => m.SummaryIndex)) { result += "{ \"label\": \"" + item.Worker.AspNetUser.Name + "\","; result += " \"value\": \"" + item.SummaryIndex + "\"},"; } result = result.TrimEnd(',') + " ]"; return(result); }
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 WorkplaceStatistic GetWorkplacesStatistic(int workplaceId, bool fillSubelements) { WorkPlace someWorkplace = db.WorkPlaces.Find(workplaceId); WorkplaceStatistic result = new WorkplaceStatistic(db, someWorkplace); foreach (Worker item in someWorkplace.Workers) { 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) { FillWorkersStatistic(result); } return(result); }