public void Handle(TaskUpdatedEvent message) { using (var context = new TaskContext()) { var task = (from t in context.PendingTasks where t.TaskId == message.TaskId select t).SingleOrDefault(); if (task == null) { return; } task.Title = message.Title; task.Description = message.Description; task.DueDate = message.DueDate; task.Priority = message.Priority; task.Status = message.Status; if (message.Status == Status.Completed) { task.CompletionDate = DateTime.Today; } if (message.Status == Status.InProgress && task.Status != Status.InProgress) { task.StartDate = DateTime.Today; task.CompletionDate = null; } context.SaveChanges(); } }
public void Update(string text, TaskPriority priority, Guid?jobOrderId) { if (this.DateOfCancellation.HasValue) { throw new InvalidOperationException("Can't update a cancelled task."); } if (this.DateOfCompletion.HasValue) { throw new InvalidOperationException("Can't update a completed task."); } if (string.IsNullOrWhiteSpace(text)) { throw new ArgumentException("A task must have a non-null name.", nameof(text)); } var e = new TaskUpdatedEvent() { TaskId = this.Id, Name = text, Priority = priority, JobOrderId = jobOrderId }; RaiseEvent(e); }
public void ApplyEvent([AggregateId("TaskId")] TaskUpdatedEvent theEvent) { // No need to change TaskId // Copy values over Title = theEvent.Title; Description = theEvent.Description; DueDate = theEvent.DueDate; Priority = theEvent.Priority; Status = theEvent.Status; }
public async System.Threading.Tasks.Task Handle(TaskUpdatedEvent message) { var t = ActiveDbContext.Tasks.Find(message.TaskId); t.Name = message.Name; t.Priority = message.Priority.Convert(); t.JobOrderId = message.JobOrderId; await ActiveDbContext.SaveChangesAsync(); }
public void TaskRenamedEvent() { var taskId = Guid.NewGuid(); var userId = Guid.NewGuid(); var e = new TaskUpdatedEvent() { Name = "Brand new name", TaskId = taskId }; var task = OTask.Factory.Create(taskId, userId, "Fake"); task.ApplyEvent(e); Assert.Equal(e.Name, task.Name); }
public void UpdateModel(string title, string description, DateTime?dueDate, Priority priority, Status status) { DomainEvent updated = null; if (this.Title == title && this.Description == description && this.DueDate == dueDate.Value.ToUniversalTime() && this.Priority == priority && this.Status == status) { updated = new TaskNoUpdatedEvent(TaskId, title, description, dueDate, priority, status); } else { updated = new TaskUpdatedEvent(TaskId, title, description, dueDate, priority, status); } RaiseEvent(updated); }
public void UpdateModel(string title, string description, DateTime?dueDate, Priority priority, Status status) { var updated = new TaskUpdatedEvent(TaskId, title, description, dueDate, priority, status); RaiseEvent(updated); }
public void ApplyEvent(TaskUpdatedEvent @event) { this.Name = @event.Name; this.Priority = @event.Priority; this.JobOrderId = @event.JobOrderId; }