protected override void HandleNotificationInternal(BaseMessage message, string action, ProjectMembersRepository projectMembersRepository, NotificationsRepository notificationsRepository) { string text = null; switch (message) { case ProjectCreatedUpdatedMessage createdUpdatedMessage: if (action == MessageActions.Created) { text = $"Created project \"{createdUpdatedMessage.Title}\""; notificationsRepository .AddNotificationsToAllUsersAsync(text) .GetAwaiter() .GetResult(); } if (action == MessageActions.Updated) { string renameText = string.Empty; if (createdUpdatedMessage.OldTitle != createdUpdatedMessage.Title) { renameText = $"\"{createdUpdatedMessage.OldTitle}\" to "; } text = $"Updated project {renameText}\"{createdUpdatedMessage.Title}\""; var udatedProjectMembers = projectMembersRepository .GetProjectMembersIdsAsync(createdUpdatedMessage.ProjectId) .GetAwaiter() .GetResult(); notificationsRepository .AddNotificationsToUsersAsync(text, udatedProjectMembers) .GetAwaiter() .GetResult(); } break; case ProjectDeletedMessage deletedMessage: text = $"Deleted project \"{deletedMessage.Title}\""; var deletedProjectMembers = projectMembersRepository .GetProjectMembersIdsAsync(deletedMessage.ProjectId) .GetAwaiter() .GetResult(); notificationsRepository .AddNotificationsToUsersAsync(text, deletedProjectMembers) .GetAwaiter() .GetResult(); break; default: ThrowUnknownMessageException(message); break; } }
protected override void HandleNotificationInternal(BaseMessage message, string action, ProjectMembersRepository projectMembersRepository, NotificationsRepository notificationsRepository) { string text = null; string projectId = null; switch (message) { case ProjectMemberCreatedUpdatedMessage createdUpdatedMessage: projectId = createdUpdatedMessage.ProjectId; var model = _mapper.Map <ProjectMemberCreatedUpdatedMessage, ProjectMemberModel>(createdUpdatedMessage); projectMembersRepository.CreateProjectMemberAsync(model.UserId, model.ProjectId).GetAwaiter().GetResult(); if (action == MessageActions.Created) { text = $"Member {createdUpdatedMessage.Username} added to project \"{createdUpdatedMessage.ProjectTitle}\""; } break; case ProjectMemberDeletedMessage deletedMessage: projectId = deletedMessage.ProjectId; var deletingModel = _mapper.Map <ProjectMemberDeletedMessage, ProjectMemberModel>(deletedMessage); projectMembersRepository.DeleteProjectMemberAsync(deletingModel.UserId, deletingModel.ProjectId).GetAwaiter().GetResult(); text = $"Member {deletedMessage.Username} removed from project \"{deletedMessage.ProjectTitle}\""; break; default: ThrowUnknownMessageException(message); break; } if (text != null && projectId != null) { var udatedProjectMembers = projectMembersRepository .GetProjectMembersIdsAsync(projectId) .GetAwaiter() .GetResult(); notificationsRepository .AddNotificationsToUsersAsync(text, udatedProjectMembers) .GetAwaiter() .GetResult(); } }
protected override void HandleNotificationInternal(BaseMessage message, string action, ProjectMembersRepository projectMembersRepository, NotificationsRepository notificationsRepository) { string text = null; string projectId = null; switch (message) { case TaskCreatedMessage createdMessage: projectId = createdMessage.ProjectId; if (action == MessageActions.Created) { text = $"Created task \"{createdMessage.Title}\" in list \"{createdMessage.ListTitle}\" (project \"{createdMessage.ProjectTitle}\")."; if (createdMessage.Members?.Any() ?? false) { text += $" Members: {string.Join(", ", createdMessage.Members.Select(m => m.Username))}."; } if (createdMessage.Labels?.Any() ?? false) { text += $" Labels: {string.Join(", ", createdMessage.Labels.Select(m => m.Title))}."; } } break; case TaskUpdatedMessage updatedMessage: projectId = updatedMessage.ProjectId; text = $"Updated task \"{updatedMessage.Title}\" in list \"{updatedMessage.ListTitle}\" (project \"{updatedMessage.ProjectTitle}\")."; if (updatedMessage.AddedMembers?.Any() ?? false) { text += $" Added members: {string.Join(", ", updatedMessage.AddedMembers.Select(m => m.Username))}."; } if (updatedMessage.RemovedMembers?.Any() ?? false) { text += $" Removed members: {string.Join(", ", updatedMessage.RemovedMembers.Select(m => m.Username))}."; } if (updatedMessage.AddedLabels?.Any() ?? false) { text += $" Added labels: {string.Join(", ", updatedMessage.AddedLabels.Select(m => m.Title))}."; } if (updatedMessage.RemovedLabels?.Any() ?? false) { text += $" Removed labels: {string.Join(", ", updatedMessage.RemovedLabels.Select(m => m.Title))}."; } break; case TaskDeletedMessage deletedMessage: projectId = deletedMessage.ProjectId; text = $"Removed task \"{deletedMessage.Title}\""; break; default: ThrowUnknownMessageException(message); break; } if (text != null && projectId != null) { var udatedProjectMembers = projectMembersRepository .GetProjectMembersIdsAsync(projectId) .GetAwaiter() .GetResult(); notificationsRepository .AddNotificationsToUsersAsync(text, udatedProjectMembers) .GetAwaiter() .GetResult(); } }