Ejemplo n.º 1
0
        private void LevelParse(string levelUrl, int extractLevel, IProcessListener processListener)
        {
            List <string> processUrls = null;

            try
            {
                ExtractResult result = Process(levelUrl, extractLevel);
                processUrls = processListener.OnNext(result);
            }
            catch (Exception ex)
            {
                processListener.OnFailed(levelUrl, extractLevel, ex);
                return;
            }

            if (configLevel <= -1 || extractLevel < this.configLevel)
            {
                if (processUrls != null && processUrls.Count > 0)
                {
                    extractLevel++;
                    foreach (var item in processUrls)
                    {
                        this.LevelParse(item, extractLevel, processListener);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public CommandLineService(
     [NotNull] IProcessFactory processFactory,
     [NotNull, Tag(StdOutErr)] IProcessListener processListener)
 {
     _processFactory  = processFactory ?? throw new ArgumentNullException(nameof(processFactory));
     _processListener = processListener ?? throw new ArgumentNullException(nameof(processListener));
 }
Ejemplo n.º 3
0
        public void SetUp()
        {
            processStartedEventArgs = CreateProcessStartedEventArgs();

            processListenerMock = Substitute.For <IProcessListener>();
            processHandlerMock  = Substitute.For <IProcessHandler>();
            systemUnderTest     = CreateSystemUnderTest();
        }
Ejemplo n.º 4
0
        public void LevelProcess(IProcessListener processListener)
        {
            if (processListener == null)
            {
                throw new ArgumentNullException(typeof(IProcessListener).Name);
            }

            LevelParse(this.entranceUrl, INIT_LEVEL, processListener);
        }
Ejemplo n.º 5
0
 public BMBApplication(
     IProcessListener processListener,
     IProcessHandler processHandler,
     IKeyboardListener keyboardListener,
     IKeyboardHandler keyboardHandler)
 {
     this.processListener  = processListener;
     this.processHandler   = processHandler;
     this.keyboardListener = keyboardListener;
     this.keyboardHandler  = keyboardHandler;
 }
Ejemplo n.º 6
0
 public DotnetBuildService(
     [Tag(WorkingDirectory)] Path workingDirectory,
     [NotNull] IToolResolver toolResolver,
     [NotNull] IProcessFactory processFactory,
     [NotNull] IProcessListener <BuildResult> processListener,
     [NotNull] IResponseFile responseFile)
 {
     _workingDirectory = workingDirectory;
     _toolResolver     = toolResolver ?? throw new ArgumentNullException(nameof(toolResolver));
     _processFactory   = processFactory ?? throw new ArgumentNullException(nameof(processFactory));
     _processListener  = processListener ?? throw new ArgumentNullException(nameof(processListener));
     _responseFile     = responseFile ?? throw new ArgumentNullException(nameof(responseFile));
 }
Ejemplo n.º 7
0
        public void LevelProcess(string levelUrl, int extractLevel, IProcessListener processListener)
        {
            if (processListener == null)
            {
                throw new ArgumentNullException(typeof(IProcessListener).Name);
            }

            if (string.IsNullOrEmpty(levelUrl) || string.IsNullOrWhiteSpace(levelUrl))
            {
                return;
            }

            LevelParse(levelUrl, extractLevel, processListener);
        }
Ejemplo n.º 8
0
        public ExitCode Run(IProcessListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException(nameof(listener));
            }

            void OnOutputDataReceived(object sender, DataReceivedEventArgs args) =>
            listener.OnStdOut(args.Data ?? string.Empty);

            void OnErrorDataReceived(object sender, DataReceivedEventArgs args) =>
            listener.OnStdErr(args.Data ?? string.Empty);

            _process.OutputDataReceived += OnOutputDataReceived;
            _process.ErrorDataReceived  += OnErrorDataReceived;
            listener.OnStart(_process.StartInfo);

            _log.Trace(() =>
            {
                var text = new List <Text>
                {
                    new Text("Starting", Color.Header),
                    Text.NewLine,
                    "FileName: ",
                    _process.StartInfo.FileName,
                    Text.NewLine,
                    "WorkingDirectory: ",
                    _process.StartInfo.WorkingDirectory,
                    Text.NewLine,
                    "Arguments: ",
                    _process.StartInfo.Arguments,
                    Text.NewLine
                };

                if (_process.StartInfo.Environment.Count > 0)
                {
                    text.Add("Environment Variables:");
                    text.Add(Text.NewLine);
                    foreach (var env in _process.StartInfo.Environment)
                    {
                        text.Add(Text.Tab);
                        text.Add($"{env.Key}={env.Value}");
                        text.Add(Text.NewLine);
                    }
                }

                return(text.ToArray());
            });

            var stopwatch = new Stopwatch();

            stopwatch.Start();
            _process.Start();

            _log.Trace(() => new[]
            {
                new Text("Started", Color.Header),
                Text.NewLine,
                new Text("Id: "),
                new Text(_process.Id.ToString(), Color.Header),
                Text.NewLine,
                new Text("Process Name: "),
                new Text(_process.ProcessName),
                Text.NewLine,
                new Text("Base Priority: "),
                new Text(_process.BasePriority.ToString()),
                Text.NewLine,
                new Text("Start Time: "),
                new Text(_process.StartTime.ToString("O"))
            });

            _process.BeginOutputReadLine();
            _process.BeginErrorReadLine();

            try
            {
                _process.WaitForExit();
                stopwatch.Stop();
                _log.Trace(() => new[]
                {
                    new Text("Finished", Color.Header),
                    Text.NewLine,
                    new Text("Id: "),
                    new Text(_process.Id.ToString(), Color.Header),
                    Text.NewLine,
                    new Text("Process Name: "),
                    _process.ProcessName,
                    Text.NewLine,
                    new Text("Exit Code: "),
                    new Text(_process.ExitCode.ToString()),
                    Text.NewLine,
                    new Text("Exit Time: "),
                    new Text(_process.ExitTime.ToString("O")),
                    Text.NewLine,
                    new Text("Duration: "),
                    new Text(stopwatch.Elapsed.ToString("G"), Color.Header)
                });
            }
            finally
            {
                _process.OutputDataReceived -= OnOutputDataReceived;
                _process.ErrorDataReceived  -= OnErrorDataReceived;
            }

            ExitCode exitCode = _process.ExitCode;

            listener.OnExitCode(exitCode);
            return(exitCode);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AudioRecorder"/> class.
 /// </summary>
 public AudioRecorder(IProcessListener listener)
 {
     _listener = listener;
 }