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()); }
public bool IsRunning(SimpleProcessInfo info) { var simpleProcessFactory = SimpleProcessFactory.Resolve(); var simpleProcess = simpleProcessFactory.GetOrCreate(info); var simpleProcessRunner = new SimpleProcessRunner(simpleProcess); return(simpleProcessRunner.Process.IsRunning()); }
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 = "" }); }); }