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 CompletingAnExistingProcessDecrementsActiveCounter_ErrorCountIsNotZero()
        {
            string        id       = DailyActivity.GetIdFrom(DateTime.UtcNow);
            DailyActivity activity = new DailyActivity(id);

            Guid     processId = Guid.NewGuid();
            DateTime startedAt = DateTime.UtcNow.AddSeconds(-10);

            activity.AddProcess(processId, startedAt);

            DateTime endedAt = DateTime.UtcNow;

            activity.EndProcess(processId, endedAt, true);

            Assert.AreEqual(0, activity.ActiveProcesses);
            Assert.AreEqual(1, activity.TotalProcessCount);
            Assert.AreEqual(1, activity.CompletionCount);
            Assert.AreEqual(1, activity.CompletedWithErrorCount);
        }