internal Guid Schedule(JobRequest request) { logger.Trace(nameof(Schedule)); var job = new ConversionJob(request, jobObserver); jobScheduler.Schedule(() => job.Execute()); return job.Id; }
internal ConversionJob(JobRequest request, IJobObserver jobObserver) { this.request = request; this.jobObserver = jobObserver; codec = new VideoCodec(); transferrer = new WebClient(); localInputFile = new FileInfo(Path.Combine(Path.GetTempPath(), $"{Id.ToString()}.input")); localOutputFile = new FileInfo(Path.Combine(Path.GetTempPath(), $"{Id.ToString()}.output")); }
public Guid Process(JobRequest request) { logger.Trace(nameof(Process)); return CurrentState.Process(this, request); }
internal override Guid Process(JobProcessor processor, JobRequest request) { throw new ObjectDisposedException(IllegalCommandInStateMessage()); }
internal override Guid Process(JobProcessor processor, JobRequest request) { return processor.Schedule(request); }
internal virtual Guid Process(JobProcessor processor, JobRequest request) { throw new InvalidOperationException(IllegalCommandInStateMessage()); }