Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public void Reset(ConverterFileStatus status) => this.files[status].Clear();
Ejemplo n.º 3
0
 public IReadOnlyDictionary <string, ConverterFileInfo> this[ConverterFileStatus status] => this.files[status];