Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/13/15 15:22:51 (9 years ago)
Author:
ascheibe
Message:

#2388

  • prevent disposing of hive data context
  • more cleanups
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/JobController.cs

    r12562 r12858  
    4747
    4848    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      });
    9291    }
    9392
     
    10099        RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator);
    101100      }
    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      });
    116114    }
    117115
     
    124122        RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator);
    125123      }
    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      });
    135132    }
    136133
    137134    [Authorize(Roles = HiveRoles.Administrator)]
    138135    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      });
    149145    }
    150146
Note: See TracChangeset for help on using the changeset viewer.