public async Task <ReturnCode> SuperviseWork()
        {
            var result = ReturnCode.Failure;

            try
            {
                // Get files to process.
                var filesToProcess = _fileProcessor.GetEdiFilesToProcess();

                if (filesToProcess.Any())
                {
                    var resultCollection = new ConcurrentBag <IEnumerable <TS837> >();

                    var transactions = Parallel.ForEach(filesToProcess, (file) =>
                    {
                        resultCollection.Add(_fileProcessor.GetAllTransactionsFromFile(file));
                    });


                    // Do whatever you want with resultCollection.

                    // Return success.
                    result = ReturnCode.TotalSuccess;
                }
                else
                {
                    // Add logging.
                }
            }
            catch (SqlException ex)
            {
                // Add logging.
                // Return SqlException code.
                result = ReturnCode.SqlException;
            }
            catch (Exception ex)
            {
                // Add logging.
                // Return UnexpectedException code.
                result = ReturnCode.UnexpectedException;
            }

            return(result);
        }