public ConverterFileStatus FinishFileProcessing(ConverterFileInfo processingFile, bool processedSuccessfully) { Contract.RequiresArgumentNotNull(processingFile, nameof(processingFile)); Contract.RequiresArgument(this.files[ConverterFileStatus.Processing].ContainsKey(processingFile.SourcePath), "File is not a processing file."); this.files[ConverterFileStatus.Processing].Remove(processingFile.SourcePath); ConverterFileStatus GetNewStatus() { if (processedSuccessfully) { return(ConverterFileStatus.ProcessedSuccessfully); } if (processingFile.ProcessingAttemps < this.MaxProcessingAttemps) { return(ConverterFileStatus.None); } return(ConverterFileStatus.Failed); } ConverterFileStatus newStatus = GetNewStatus(); this.files[newStatus].Add(processingFile.SourcePath, processingFile); return(newStatus); }
public void Reset(ConverterFileStatus status) => this.files[status].Clear();
public IReadOnlyDictionary <string, ConverterFileInfo> this[ConverterFileStatus status] => this.files[status];