public string Execute(string filePath) { Guard.IsNotNull(filePath, nameof(filePath)); ProcessWorkingDirectoryContext processDirectoryContext = null; try { _logger.LogInfo("******** Process Started ********"); _logger.LogInfo($"File Path: {filePath}"); _logger.LogInfo($"Process ID: {Id}"); processDirectoryContext = _processSetup.SetupProcessDirectory(Id, filePath); _logger.LogInfo("**** Beginning Executables processing. ****"); _processExecutor.Execute(Id, processDirectoryContext.ProcessDirectory); _logger.LogInfo("**** Executables processing completed successfully. ****"); } catch (Exception ex) { _logger.LogInfo("** FAILURE **"); _logger.LogInfo($"Process Error: {ex.Message}"); _logger.LogError(ex); } finally { try { // TODO //_finalizer.OnComplete(success, processDirectoryContext?.WorkingDirectory); _logger.LogInfo("******** Process Complete ********"); } catch (Exception ex) { _logger.LogError(ex); } } return(_logger.ToString()); }