Changeset 9700 for stable/HeuristicLab.Services.Hive/3.3/HiveService.cs
- Timestamp:
- 07/06/13 11:38:38 (11 years ago)
- Location:
- stable
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 9665-9666,9675
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Services.Hive
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Services.Hive/3.3
- Property svn:ignore
-
old new 2 2 bin 3 3 obj 4 *.user
-
- Property svn:ignore
-
stable/HeuristicLab.Services.Hive/3.3/HiveService.cs
r9456 r9700 37 37 /// </summary> 38 38 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, IgnoreExtensionDataObject = true)] 39 [HiveOperationContextBehavior] 39 40 public class HiveService : IHiveService { 40 41 private IHiveDao dao { 41 42 get { return ServiceLocator.Instance.HiveDao; } 42 43 } 44 private IOptimizedHiveDao optimizedDao { 45 get { return ServiceLocator.Instance.OptimizedHiveDao; } 46 } 43 47 private Access.IRoleVerifier authen { 44 48 get { return ServiceLocator.Instance.RoleVerifier; } … … 64 68 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 65 69 return trans.UseTransaction(() => { 66 task.Id = dao.AddTask(task); 67 taskData.TaskId = task.Id; 68 taskData.LastUpdate = DateTime.Now; 69 dao.AssignJobToResource(task.Id, resourceIds); 70 dao.AddTaskData(taskData); 71 dao.UpdateTaskState(task.Id, DA.TaskState.Waiting, null, userManager.CurrentUserId, null); 72 return taskData.TaskId; 70 var t = DT.Convert.ToEntity(task); 71 t.RequiredPlugins.AddRange(task.PluginsNeededIds.Select(pluginId => new DA.RequiredPlugin { Task = t, PluginId = pluginId })); 72 73 t.JobData = DT.Convert.ToEntity(taskData); 74 t.JobData.LastUpdate = DateTime.Now; 75 76 optimizedDao.AddTask(t); 77 78 dao.AssignJobToResource(t.TaskId, resourceIds); 79 80 optimizedDao.UpdateTaskState(t.TaskId, DA.TaskState.Waiting, null, userManager.CurrentUserId, null); 81 82 return t.TaskId; 73 83 }, false, true); 74 84 } … … 76 86 public Guid AddChildTask(Guid parentTaskId, Task task, TaskData taskData) { 77 87 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 78 return trans.UseTransaction(() => { 79 task.ParentTaskId = parentTaskId; 80 return AddTask(task, taskData, dao.GetAssignedResources(parentTaskId).Select(x => x.Id)); 81 }, false, true); 88 task.ParentTaskId = parentTaskId; 89 return AddTask(task, taskData, optimizedDao.GetAssignedResourceIds(parentTaskId)); 82 90 } 83 91 … … 87 95 88 96 return trans.UseTransaction(() => { 89 return dao.GetTask(taskId);97 return DT.Convert.ToDto(optimizedDao.GetTaskById(taskId)); 90 98 }, false, false); 91 99 } … … 128 136 129 137 return trans.UseTransaction(() => { 130 return dao.GetLightweightTasks(task => task.JobId ==jobId).ToArray();138 return optimizedDao.GetLightweightTasks(jobId).ToArray(); 131 139 }, false, true); 132 140 } … … 155 163 156 164 trans.UseTransaction(() => { 157 dao.UpdateTaskAndPlugins(taskDto); 165 var task = optimizedDao.GetTaskByDto(taskDto); 166 optimizedDao.UpdateTask(task); 158 167 }); 159 168 } … … 164 173 165 174 trans.UseTransaction(() => { 166 dao.UpdateTaskAndPlugins(task); 167 }); 168 169 trans.UseTransaction(() => { 170 taskData.LastUpdate = DateTime.Now; 171 dao.UpdateTaskData(taskData); 175 var t = optimizedDao.GetTaskByDto(task); 176 optimizedDao.UpdateTask(t); 177 }); 178 179 trans.UseTransaction(() => { 180 var data = optimizedDao.GetTaskDataByDto(taskData); 181 data.LastUpdate = DateTime.Now; 182 optimizedDao.UpdateTaskData(data); 172 183 }); 173 184 } … … 196 207 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave); 197 208 author.AuthorizeForTask(taskId, Permission.Full); 198 return trans.UseTransaction(() => { 199 Task task = dao.UpdateTaskState(taskId, DataTransfer.Convert.ToEntity(taskState), slaveId, userId, exception); 200 201 if (task.Command.HasValue && task.Command.Value == Command.Pause && task.State == TaskState.Paused) { 209 210 return trans.UseTransaction(() => { 211 var task = optimizedDao.UpdateTaskState(taskId, DT.Convert.ToEntity(taskState), slaveId, userId, exception); 212 213 if (task.Command.HasValue && task.Command.Value == DA.Command.Pause && task.State == DA.TaskState.Paused) { 202 214 task.Command = null; 203 } else if (task.Command.HasValue && task.Command.Value == Command.Abort && task.State ==TaskState.Aborted) {215 } else if (task.Command.HasValue && task.Command.Value == DA.Command.Abort && task.State == DA.TaskState.Aborted) { 204 216 task.Command = null; 205 } else if (task.Command.HasValue && task.Command.Value == Command.Stop && task.State ==TaskState.Aborted) {217 } else if (task.Command.HasValue && task.Command.Value == DA.Command.Stop && task.State == DA.TaskState.Aborted) { 206 218 task.Command = null; 207 219 } else if (taskState == TaskState.Paused && !task.Command.HasValue) { 208 220 // slave paused and uploaded the task (no user-command) -> set waiting. 209 task = dao.UpdateTaskState(taskId, DataTransfer.Convert.ToEntity(TaskState.Waiting), slaveId, userId, exception); 210 } 211 212 dao.UpdateTaskAndPlugins(task); 213 return task; 221 task = optimizedDao.UpdateTaskState(taskId, DA.TaskState.Waiting, slaveId, userId, exception); 222 } 223 224 return DT.Convert.ToDto(task); 214 225 }); 215 226 } … … 463 474 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client, HiveRoles.Slave); 464 475 return trans.UseTransaction(() => { 465 return dao.GetPlugin(pluginId);476 return DT.Convert.ToDto(optimizedDao.GetPluginById(pluginId)); 466 477 }); 467 478 }
Note: See TracChangeset
for help on using the changeset viewer.