public override void Start(ISubJob newJob) { base.Start(newJob); RecordReader.OpenReader(); RecordWriter.OpenWriterAsync(); RecordReader.StartReadAsync(); }
public Job(IEnumerable <ISyncElement> syncElements) { Status = JobStatus.OnQueue; SyncElementsStack = new List <ISyncElement>(syncElements); SubJobs = new List <ISubJob>(); foreach (ISyncElement syncElement in SyncElementsStack) { SubJobs.Add(new SubJob(syncElement)); } foreach (ISubJob subJob in SubJobs) { subJob.OnCompleted += OnSubJobCompleted; foreach (ISyncElement dependency in subJob.TargetElement.Dependencies) { ISubJob dependencyJob = SubJobs.FirstOrDefault(sjb => sjb.TargetElement == dependency); if (dependencyJob != null) { subJob.Dependencies.Add(dependencyJob); } } } }
protected virtual void OpenJob(ISubJob newJob) { if (CurrentJob != null) { throw new InvalidOperationException("Another Job is already open"); } CurrentJob = newJob; }
protected virtual void OpenJob(ISubJob newJob) { CurrentJob = newJob; try { LoadResources(); CheckResourcesLoaded(); } catch { throw new Exception("Failed Loading Resources"); } }
public override void Start(ISubJob newJob) { base.Start(newJob); List <Order> trialRecords = SSMDData.RunQuery(new Query <Order, SSMDContext>()).Where(ord => ord.OrderType[0] == 'Z').ToList(); IDictionary <int, WorkPhaseLabData> workPhaseDataIndex = SSMDData.RunQuery(new Query <WorkPhaseLabData, SSMDContext>()).ToDictionary(wpld => wpld.OrderNumber, wpld => wpld); List <WorkPhaseLabData> newTrials = new List <WorkPhaseLabData>(); foreach (Order trial in trialRecords) { if (!workPhaseDataIndex.ContainsKey(trial.Number)) { newTrials.Add(new WorkPhaseLabData() { OrderNumber = trial.Number }); } } SSMDData.Execute(new InsertEntitiesCommand <SSMDContext>(newTrials)); }
private void ScheduleTask(ISubJob task) { if (System.Threading.Thread.CurrentThread == AsyncSystem.MainThread) { var pairing = new Tuple <ISubJob, AsyncSystem>(task, this); var gcHandle = GCHandle.Alloc(pairing); this.gcHandles.Add(gcHandle); var job = new Job() { handle = gcHandle }; // We remember the JobHandle so we can complete it later this.jobHandles.Add(job.Schedule()); } else { newTasks.Enqueue(task); } }
public SubJobViewModel(ISubJob subJob) { SubJob = subJob; SubJob.StatusChanged += OnStatusChanged; }
public virtual async void StartAsync(ISubJob newJob) { await Task.Run(() => Start(newJob)); }
public virtual void Start(ISubJob newJob) { OpenJob(newJob); }
public virtual void Execute(ISubJob newJob) { OpenJob(newJob); }
public override void Execute(ISubJob newJob) { base.Execute(newJob); OperationEnumerator = Operations.GetEnumerator(); StartNextOperation(); }