Beispiel #1
0
        public Task <MessageResult> TryStart(SimpleProcessInfo info)
        {
            var simpleProcessFactory = SimpleProcessFactory.Resolve();
            var simpleProcess        = simpleProcessFactory.GetOrCreate(info);
            var simpleProcessRunner  = new SimpleProcessRunner(simpleProcess);

            if (_fooClientDaemon == null)
            {
                var simpleDaemon = SimpleDaemon.Resolve();
                _fooClientDaemon = new FooClientDaemon(simpleDaemon, simpleProcessRunner);
            }
            else
            {
                if (!info.ProcessName.Equals(_fooClientDaemon.Runner.Process.Info.ProcessName, StringComparison.OrdinalIgnoreCase))
                {
                    _fooClientDaemon.Daemon.Dispose();
                    _fooClientDaemon.Daemon = null;

                    var simpleDaemon = SimpleDaemon.Resolve();
                    _fooClientDaemon = new FooClientDaemon(simpleDaemon, simpleProcessRunner);
                }
            }

            return(_fooClientDaemon.TryStart());
        }
Beispiel #2
0
        public bool IsRunning(SimpleProcessInfo info)
        {
            var simpleProcessFactory = SimpleProcessFactory.Resolve();
            var simpleProcess        = simpleProcessFactory.GetOrCreate(info);
            var simpleProcessRunner  = new SimpleProcessRunner(simpleProcess);

            return(simpleProcessRunner.Process.IsRunning());
        }
Beispiel #3
0
        private void MyInitializeComponent()
        {
            this.ServiceName = "FooClientDaemon";
            var simpleProcessFactory = SimpleProcessFactory.Resolve();
            var fooClientInfo        = new SimpleProcessInfo()
            {
                ProcessName = "FooClient", ExePath = "FooClient.exe", ExeArgs = ""
            };

            simpleProcessFactory.GetOrCreate(fooClientInfo);

            Daemon = SimpleDaemon.Resolve();
        }
        public void GetOrCreate_SameProcessName_Should_Same()
        {
            var simpleProcessFactory = new SimpleProcessFactory();
            var simpleProcess        = simpleProcessFactory.GetOrCreate(new SimpleProcessInfo()
            {
                ProcessName = "Foo", ExePath = "Foo.exe"
            });
            var simpleProcess2 = simpleProcessFactory.GetOrCreate(new SimpleProcessInfo()
            {
                ProcessName = "Foo", ExePath = "Foo.exe"
            });

            simpleProcess2.ShouldSame(simpleProcess);
        }
        public void Create_GetOrCreate_ArgsNull_Should_Ex()
        {
            AssertHelper.ShouldThrows <ArgumentNullException>(() =>
            {
                var simpleProcessFactory = new SimpleProcessFactory();
                simpleProcessFactory.Create(null);
            });


            AssertHelper.ShouldThrows <ArgumentNullException>(() =>
            {
                var simpleProcessFactory = new SimpleProcessFactory();
                simpleProcessFactory.GetOrCreate(null);
            });
        }
        public void Create_GetOrCreate_ExePathNull_Should_Ex()
        {
            AssertHelper.ShouldThrows <ArgumentException>(() =>
            {
                var simpleProcessFactory = new SimpleProcessFactory();
                simpleProcessFactory.Create(new SimpleProcessInfo()
                {
                    ProcessName = "Foo", ExePath = ""
                });
            });

            AssertHelper.ShouldThrows <ArgumentException>(() =>
            {
                var simpleProcessFactory = new SimpleProcessFactory();
                simpleProcessFactory.GetOrCreate(new SimpleProcessInfo()
                {
                    ProcessName = "Foo", ExePath = ""
                });
            });
        }