public async Task Handle(JobOrderCompletedEvent message) { using (var db = new AccountancyContext()) { var jobOrder = db.JobOrders .OfType <JobOrder>() .Where(jo => jo.OriginalId == message.JobOrderId) .Single(); jobOrder.DateOfCompletion = message.DateOfCompletion; jobOrder.IsCompleted = true; await db.SaveChangesAsync(); } }
public void MarkAsCompleted(DateTime dateOfCompletion) { if (this.DateOfStart > dateOfCompletion) { throw new ArgumentException("The date of completion cannot precede the date of start.", nameof(dateOfCompletion)); } if (this.IsCompleted) { throw new InvalidOperationException("The Job Order has already been marked as completed"); } var @event = new JobOrderCompletedEvent( this.Id, dateOfCompletion ); RaiseEvent(@event); }
public void ApplyEvent(JobOrderCompletedEvent evt) { this.DateOfCompletion = evt.DateOfCompletion; this.IsCompleted = true; }
public void ApplyEvent([AggregateId(nameof(JobOrderCompletedEvent.JobOrderId))] JobOrderCompletedEvent evt) { this.DateOfCompletion = evt.DateOfCompletion; this.IsCompleted = true; }