public override void Execute(IOperation operation, IOperationLogger logger) { logger.Debug($"[Operation: {operation.ComplexOperationId}, note: {NoteId}] Sending notifications for users").Wait(); var note = noteFolderStore.GetNoteById(operation, NoteId).Result; var(_, users) = userDataStore.GetUsers(operation, new UserPagingRequest { PageNo = 0, PageSize = UserIds.Count(), Filter = new UserPagingFilter { Ids = UserIds } }).Result; foreach (var user in users) { var message = $"[Operation: {operation.ComplexOperationId}, note: {NoteId}] Note \"{note.FolderName}\" -> \"{note.Title}\":"; message += $"\n- The following user: {user.FirstName}{(!string.IsNullOrWhiteSpace(user.LastName) ? $" {user.LastName}" : "")} <{user.Email}>"; message += $"\n- The text:\n{note.Text}"; logger.Info(message).Wait(); } logger.Debug($"[Operation: {operation.ComplexOperationId}, note: {NoteId}] Sent notifications for users").Wait(); }
public async Task <UserPagingResponse> GetUsers(IOperation operation, UserPagingRequest request) { var(total, users) = await userDataStore.GetUsers(operation, request); return(new UserPagingResponse { Total = total, Items = users }); }