private void UpdateTaskState(IPersistenceManager pm, DA.Task task, DT.TaskState taskState, Guid?slaveId, Guid?userId, string exception) { var stateLogDao = pm.StateLogDao; var taskStateEntity = taskState.ToEntity(); if (task.Command == DA.Command.Pause && task.State == DA.TaskState.Paused || task.Command == DA.Command.Abort && task.State == DA.TaskState.Aborted || task.Command == DA.Command.Stop && task.State == DA.TaskState.Aborted) { task.Command = null; } else if (taskStateEntity == DA.TaskState.Paused && task.Command == null) { // slave paused and uploaded the task (no user-command) -> set waiting. taskStateEntity = DA.TaskState.Waiting; } stateLogDao.Save(new DA.StateLog { State = taskStateEntity, DateTime = DateTime.Now, TaskId = task.TaskId, UserId = userId, SlaveId = slaveId, Exception = exception }); task.State = taskStateEntity; }
public static void CopyToEntity(this DT.Task source, DA.Task target) { if ((source == null) || (target == null)) { return; } target.TaskId = source.Id; target.State = source.State.ToEntity(); target.ExecutionTimeMs = source.ExecutionTime.TotalMilliseconds; target.LastHeartbeat = source.LastHeartbeat; target.ParentTaskId = source.ParentTaskId; target.Priority = source.Priority; target.CoresNeeded = source.CoresNeeded; target.MemoryNeeded = source.MemoryNeeded; target.IsParentTask = source.IsParentTask; target.FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished; target.Command = source.Command.ToEntity(); target.JobId = source.JobId; var ids = target.RequiredPlugins.Select(x => x.PluginId); target.RequiredPlugins.AddRange(source.PluginsNeededIds .Where(x => !ids.Contains(x)) .Select(x => new DA.RequiredPlugin { PluginId = x }) ); target.StateLogs.AddRange(source.StateLog .Where(x => x.Id == Guid.Empty) .Select(x => x.ToEntity()) ); // result.JobData missing // result.AssignedResources missing }
public static DT.Task ToDto(this DA.Task source) { if (source == null) { return(null); } return(new DT.Task { Id = source.TaskId, State = source.State.ToDto(), ExecutionTime = TimeSpan.FromMilliseconds(source.ExecutionTimeMs), LastHeartbeat = source.LastHeartbeat, ParentTaskId = source.ParentTaskId, Priority = source.Priority, CoresNeeded = source.CoresNeeded, MemoryNeeded = source.MemoryNeeded, IsParentTask = source.IsParentTask, FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished, Command = source.Command.ToDto(), JobId = source.JobId, PluginsNeededIds = source.RequiredPlugins.Select(x => x.PluginId).ToList(), StateLog = source.StateLogs.Select(x => x.ToDto()).OrderBy(x => x.DateTime).ToList(), LastTaskDataUpdate = source.JobData == null ? DateTime.MinValue : source.JobData.LastUpdate, IsPrivileged = true }); }
public static DT.Task ToDto(DB.Task source) { if (source == null) { return(null); } return(new DT.Task { Id = source.TaskId, CoresNeeded = source.CoresNeeded, ExecutionTime = TimeSpan.FromMilliseconds(source.ExecutionTimeMs), MemoryNeeded = source.MemoryNeeded, ParentTaskId = source.ParentTaskId, Priority = source.Priority, PluginsNeededIds = (source.RequiredPlugins == null ? new List <Guid>() : source.RequiredPlugins.Select(x => x.PluginId).ToList()), LastHeartbeat = source.LastHeartbeat, State = Convert.ToDto(source.State), StateLog = (source.StateLogs == null ? new List <DT.StateLog>() : source.StateLogs.Select(x => Convert.ToDto(x)).OrderBy(x => x.DateTime).ToList()), IsParentTask = source.IsParentTask, FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished, Command = Convert.ToDto(source.Command), LastTaskDataUpdate = (source.JobData == null ? DateTime.MinValue : source.JobData.LastUpdate), JobId = source.JobId, IsPrivileged = source.IsPrivileged }); }
public static DB.Task ToEntity(DT.Task source) { if (source == null) { return(null); } var entity = new DB.Task(); ToEntity(source, entity); return(entity); }
public static DA.Task ToEntity(this DT.Task source) { if (source == null) { return(null); } var result = new DA.Task(); source.CopyToEntity(result); return(result); }
public static void ToEntityTaskOnly(DT.Task source, DB.Task target) { if ((source != null) && (target != null)) { target.TaskId = source.Id; target.CoresNeeded = source.CoresNeeded; target.ExecutionTimeMs = source.ExecutionTime.TotalMilliseconds; target.MemoryNeeded = source.MemoryNeeded; target.ParentTaskId = source.ParentTaskId; target.Priority = source.Priority; target.LastHeartbeat = source.LastHeartbeat; target.State = Convert.ToEntity(source.State); target.IsParentTask = source.IsParentTask; target.FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished; target.Command = Convert.ToEntity(source.Command); // RequiredPlugins are added by Dao target.JobId = source.JobId; target.IsPrivileged = source.IsPrivileged; } }
public static DB.Task ToEntity(DT.Task source) { if (source == null) return null; var entity = new DB.Task(); ToEntity(source, entity); return entity; }
public static DA.Task ToEntity(this DT.Task source) { if (source == null) return null; var result = new DA.Task(); source.CopyToEntity(result); return result; }
partial void DeleteTask(Task instance);
partial void UpdateTask(Task instance);
partial void InsertTask(Task instance);
private void detach_Jobs(Task entity) { this.SendPropertyChanging(); entity.Job = null; }
private void attach_Jobs(Task entity) { this.SendPropertyChanging(); entity.Job = this; }