protected override ExecutionResult ExecuteCommand(UpdateActivityCommand command) { var entityId = command.Id; var currentState = _session.Repository.Get(entityId); var agg = ActivityAggregationRoot.ReconstructFrom(currentState); var descr = command.Description; agg.UpdateTask(Activity.Patch.FromDescription(descr)); var task = agg.GetChange(); _session.Repository.Add(task); _session.SaveChanges(); Publisher.Publish(agg.GetEvents()); return(new ExecutionResult(true)); }
public void Check_TaskAggregation_UpdateTaskStatus() { //given var descriptionText = "Given Description"; var id = EntityId.From(1u); var newStatus = 2; var oldState = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var agg = ActivityAggregationRoot.ReconstructFrom(oldState); agg.ChangeTaskStatus(ActivityStatus.From(newStatus)); var changes = agg.GetChange(); //then Assert.NotEqual(changes, oldState); }
public void Check_TaskAggregation_UpdateTaskStatus_invalid() { //given var descriptionText = "Given Description"; var id = EntityId.From(1u); var newStatus = 6; var oldState = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var agg = ActivityAggregationRoot.ReconstructFrom(oldState); agg.ChangeTaskStatus(ActivityStatus.From(newStatus)); //then Assert.False(agg.ValidationResults.IsValid); }
protected override ExecutionResult ExecuteCommand(ChangeActivityStatusCommand command) { var currentState = _session.Repository.Get(command.Id); var agg = ActivityAggregationRoot.ReconstructFrom(currentState); agg.ChangeTaskStatus(command.NewStatus); var task = agg.GetChange(); var isSucceed = false; if (agg.ValidationResults.IsValid) { _session.Repository.Add(task); _session.SaveChanges(); Publisher.Publish(agg.GetEvents()); isSucceed = true; } return(new ExecutionResult(isSucceed, agg.ValidationResults.Errors.ToImmutableList())); }