public void Handle(TeamUserApprovedEvent domainEvent) { LogToConsole(domainEvent); dynamic eventData = JsonConvert.DeserializeObject(domainEvent.JsonPayload); var membership = _teamMembershipRepository.Get() .FirstOrDefault(m => m.TeamId == domainEvent.AggregateId && m.UserId == eventData.UserId); membership.Approved = true; _teamMembershipRepository.Update(membership); }
public void Approve(User user) { CheckIfCreated(); CheckIfDeleted(); if (!Users.Any(u => u.Id == user.Id)) { throw new ArgumentException("Cannot approve user that hasn't joined"); } var payload = new { UserId = user.Id }; var jsonPayload = JsonConvert.SerializeObject(payload); var teamUserApprovedEvent = new TeamUserApprovedEvent( Id, Version + 1, jsonPayload); Apply(teamUserApprovedEvent); }