Changeset 12858 for branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JobController.cs
- Timestamp:
- 08/13/15 15:22:51 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JobController.cs
r12562 r12858 47 47 48 48 public DT.JobDetails GetJobDetails(Guid id) { 49 using (var pm = PersistenceManager) { 50 var dimJobDao = pm.DimJobDao; 51 var factTaskDao = pm.FactTaskDao; 52 return pm.UseTransaction(() => { 53 var job = dimJobDao.GetById(id); 54 if (job != null) { 55 var timeData = factTaskDao.GetByJobId(id).GroupBy(x => x.JobId).Select(x => new { 56 AvgTransferringTime = (long)x.Average(y => y.TransferTime), 57 MinCalculatingTime = (long)x.Min(y => y.CalculatingTime), 58 MaxCalculatingTime = (long)x.Max(y => y.CalculatingTime), 59 AvgCalculatingTime = (long)x.Average(y => y.CalculatingTime), 60 TotalCalculatingTime = (long)x.Sum(y => y.CalculatingTime), 61 TotalWaitingTime = (long)x.Sum(y => y.WaitingTime) 62 }).FirstOrDefault(); 63 DateTime endTime = job.DateCompleted ?? DateTime.Now; 64 long totalTime = (long)(endTime - job.DateCreated).TotalSeconds; 65 return new DT.JobDetails { 66 Id = job.JobId, 67 Name = job.JobName, 68 UserId = job.UserId, 69 UserName = job.UserName, 70 DateCreated = job.DateCreated, 71 DateCompleted = job.DateCompleted, 72 TotalTasks = job.TotalTasks, 73 CompletedTasks = job.CompletedTasks, 74 AvgTransferringTime = timeData != null ? timeData.AvgTransferringTime : 0, 75 AvgCalculatingTime = timeData != null ? timeData.AvgCalculatingTime : 0, 76 MinCalculatingTime = timeData != null ? timeData.MinCalculatingTime : 0, 77 MaxCalculatingTime = timeData != null ? timeData.MaxCalculatingTime : 0, 78 TotalCalculatingTime = timeData != null ? timeData.TotalCalculatingTime : 0, 79 TotalWaitingTime = timeData != null ? timeData.TotalWaitingTime : 0, 80 TotalTime = totalTime, 81 TasksStates = factTaskDao.GetByJobId(id) 82 .GroupBy(x => x.TaskState) 83 .Select(x => new DT.TaskStateCount { 84 State = x.Key.ToString(), 85 Count = x.Count() 86 }).ToList() 87 }; 88 } 89 return null; 90 }); 91 } 49 var pm = PersistenceManager; 50 var dimJobDao = pm.DimJobDao; 51 var factTaskDao = pm.FactTaskDao; 52 return pm.UseTransaction(() => { 53 var job = dimJobDao.GetById(id); 54 if (job != null) { 55 var timeData = factTaskDao.GetByJobId(id).GroupBy(x => x.JobId).Select(x => new { 56 AvgTransferringTime = (long)x.Average(y => y.TransferTime), 57 MinCalculatingTime = (long)x.Min(y => y.CalculatingTime), 58 MaxCalculatingTime = (long)x.Max(y => y.CalculatingTime), 59 AvgCalculatingTime = (long)x.Average(y => y.CalculatingTime), 60 TotalCalculatingTime = (long)x.Sum(y => y.CalculatingTime), 61 TotalWaitingTime = (long)x.Sum(y => y.WaitingTime) 62 }).FirstOrDefault(); 63 DateTime endTime = job.DateCompleted ?? DateTime.Now; 64 long totalTime = (long)(endTime - job.DateCreated).TotalSeconds; 65 return new DT.JobDetails { 66 Id = job.JobId, 67 Name = job.JobName, 68 UserId = job.UserId, 69 UserName = job.UserName, 70 DateCreated = job.DateCreated, 71 DateCompleted = job.DateCompleted, 72 TotalTasks = job.TotalTasks, 73 CompletedTasks = job.CompletedTasks, 74 AvgTransferringTime = timeData != null ? timeData.AvgTransferringTime : 0, 75 AvgCalculatingTime = timeData != null ? timeData.AvgCalculatingTime : 0, 76 MinCalculatingTime = timeData != null ? timeData.MinCalculatingTime : 0, 77 MaxCalculatingTime = timeData != null ? timeData.MaxCalculatingTime : 0, 78 TotalCalculatingTime = timeData != null ? timeData.TotalCalculatingTime : 0, 79 TotalWaitingTime = timeData != null ? timeData.TotalWaitingTime : 0, 80 TotalTime = totalTime, 81 TasksStates = factTaskDao.GetByJobId(id) 82 .GroupBy(x => x.TaskState) 83 .Select(x => new DT.TaskStateCount { 84 State = x.Key.ToString(), 85 Count = x.Count() 86 }).ToList() 87 }; 88 } 89 return null; 90 }); 92 91 } 93 92 … … 100 99 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator); 101 100 } 102 using (var pm = PersistenceManager) { 103 var dimJobDao = pm.DimJobDao; 104 return pm.UseTransaction(() => { 105 var jobs = dimJobDao.GetByUserId(id).Where(x => completed ? (x.DateCompleted != null) : (x.DateCompleted == null)); 106 return new DT.JobPage { 107 TotalJobs = jobs.Count(), 108 Jobs = jobs.OrderByDescending(x => x.DateCompleted ?? DateTime.MaxValue) 109 .Skip((page - 1) * size) 110 .Take(size) 111 .Select(x => ConvertToDT(x)) 112 .ToList() 113 }; 114 }); 115 } 101 var pm = PersistenceManager; 102 var dimJobDao = pm.DimJobDao; 103 return pm.UseTransaction(() => { 104 var jobs = dimJobDao.GetByUserId(id).Where(x => completed ? (x.DateCompleted != null) : (x.DateCompleted == null)); 105 return new DT.JobPage { 106 TotalJobs = jobs.Count(), 107 Jobs = jobs.OrderByDescending(x => x.DateCompleted ?? DateTime.MaxValue) 108 .Skip((page - 1) * size) 109 .Take(size) 110 .Select(x => ConvertToDT(x)) 111 .ToList() 112 }; 113 }); 116 114 } 117 115 … … 124 122 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator); 125 123 } 126 using (var pm = PersistenceManager) { 127 var dimJobDao = pm.DimJobDao; 128 return pm.UseTransaction(() => { 129 return dimJobDao.GetByUserId(id) 130 .Where(x => completed ? (x.DateCompleted != null) : (x.DateCompleted == null)) 131 .Select(x => ConvertToDT(x)) 132 .ToList(); 133 }); 134 } 124 var pm = PersistenceManager; 125 var dimJobDao = pm.DimJobDao; 126 return pm.UseTransaction(() => { 127 return dimJobDao.GetByUserId(id) 128 .Where(x => completed ? (x.DateCompleted != null) : (x.DateCompleted == null)) 129 .Select(x => ConvertToDT(x)) 130 .ToList(); 131 }); 135 132 } 136 133 137 134 [Authorize(Roles = HiveRoles.Administrator)] 138 135 public IEnumerable<DT.Job> GetAllActiveJobsFromAllUsers() { 139 using (var pm = PersistenceManager) { 140 var dimJobDao = pm.DimJobDao; 141 return pm.UseTransaction(() => { 142 return dimJobDao.GetAll() 143 .Where(x => x.DateCompleted == null) 144 .OrderByDescending(x => x.DateCreated) 145 .Select(x => ConvertToDT(x)) 146 .ToList(); 147 }); 148 } 136 var pm = PersistenceManager; 137 var dimJobDao = pm.DimJobDao; 138 return pm.UseTransaction(() => { 139 return dimJobDao.GetAll() 140 .Where(x => x.DateCompleted == null) 141 .OrderByDescending(x => x.DateCreated) 142 .Select(x => ConvertToDT(x)) 143 .ToList(); 144 }); 149 145 } 150 146
Note: See TracChangeset
for help on using the changeset viewer.