public void IgnoreAProcessEndedEventForAUnkownProcess() { Guid guid = Guid.NewGuid(); Guid guid2 = Guid.NewGuid(); Guid processType = ProcessGuids.ProcessA; ProcessStarted worEvent = new ProcessStarted(guid, processType); ProcessEnded worcEvent = new ProcessEnded(guid2, DateTime.UtcNow, false); IRepository <DailyActivity> repo = GetRepositoryForTest(); DailyActivityEventProcessor processor = new DailyActivityEventProcessor( repo ); processor.Handle(worEvent); processor.Handle(worcEvent); DailyActivity activity = repo.Get(GetIdForFirstActivityPersisted(repo)); Assert.IsNotNull(activity); Assert.AreEqual(1, activity.ActiveProcesses); Assert.AreEqual(1, activity.TotalProcessCount); Assert.AreEqual(0, activity.CompletionCount); Assert.AreEqual(0, activity.CompletedWithErrorCount); }
public void EndProcess(string name) { if (_workers.ContainsKey(name)) { _workers[name].CancelAsync(); ProcessEnded?.Invoke(this, _workers[name]); } }
public void Handle(ProcessEnded @event) { string id = DailyActivity.GetIdFrom(@event.CreatedAt); DailyActivity activity = repository.Get(id); //should exist for this event if (activity != null) { //execute change / update activity.EndProcess(@event.ProcessId, @event.EndTime, @event.WithError); //save - persist? repository.Save(activity); } }
public void CanCreateInstanceOfProcessEndedEvent() { Guid processId = Guid.NewGuid(); DateTime time = DateTime.UtcNow; bool withError = true; ProcessEnded @event = new ProcessEnded(processId, time, withError); Assert.IsNotNull(@event); Assert.IsInstanceOf <Event>(@event); Assert.AreEqual(processId, @event.ProcessId); Assert.AreEqual(time, @event.EndTime); Assert.AreEqual(withError, @event.WithError); }
private void WorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { ProcessEnded?.Invoke(this, sender as BackgroundWorker); }
private void PipeClosed(object sender, EventArgs e) { ProcessEnded?.Invoke(this, null); }
private void Proc_Exited(object sender, EventArgs e) { ProcessEnded?.Invoke(this, new EventArgs()); }