private string Describe(DeveloperHasLeftProject @event) { Require.NotNull(@event, nameof(@event)); var developer = _userRepository.GetAccount(@event.UserId); var developerFullName = developer.Firstname + " " + developer.Lastname; var project = _projectRepository.GetProject(@event.ProjectId); return(string.Format(EventDescriptionResources.DeveloperHasLeftProject, developerFullName, project.Name)); }
public void RemoveUserFromProject(int projectId, int userId) { Require.Positive(projectId, nameof(projectId)); Require.Positive(userId, nameof(userId)); var project = GetProject(projectId); if (project.ProjectMemberships.All(developer => developer.DeveloperId != userId)) { throw new InvalidOperationException("Attempt to remove developer who is not on project"); } var developerToDelete = project.ProjectMemberships .SingleOrDefault(developer => developer.DeveloperId == userId); project.ProjectMemberships.Remove(developerToDelete); UpdateProject(project); var @event = new DeveloperHasLeftProject(userId, projectId); _eventBus.PublishEvent("Notification", "developer_has_left_project", @event); }
public void NotifyAboutDeveloperHasLeftProject(DeveloperHasLeftProject @event) { NotifyAboutNewEvent(@event); }