public async Task<Messages> MessagesAsync(IEnumerable<string> routeTags, string agencyTag = null) { var command = new MessagesCommand {RouteTags = routeTags.ToList()}; if (agencyTag != null) { command.AgencyTag = agencyTag; } return await command.ExecuteAsync(); }
public async Task ReadUserMessages(MessagesCommand command, Contexts contexts) { if (!contexts.User.IsAdmin() && command.User != contexts.User.Id) //allow check own messages for everybody { throw new NotAdminPermissionsException(); } var selectedUser = await this._usersService.GetUserByIdAsync(contexts.Server, command.User); if (selectedUser == null) { throw new UserNotFoundException(command.User.GetUserMention()); } var timeRange = TimeRange.ToNow(contexts.Message.SentAt - command.Time); var query = new GetMessagesQuery(contexts.Server.Id, userId: selectedUser.Id) { SentDate = timeRange }; var messages = this._queryBus.Execute(query).Messages .OrderBy(x => x.SentAt) .ToList(); var messagesService = this._messagesServiceFactory.Create(contexts); var maxNumberOfMessages = this._configurationService.GetConfigurationItem <MaxNumberOfMessagesDisplayedByMessageCommandWithoutForce>(contexts.Server.Id).Value; if (messages.Count > maxNumberOfMessages && !command.Force) { await messagesService.SendResponse(x => x.NumberOfMessagesIsHuge(messages.Count)); return; } if (!messages.Any()) { await messagesService.SendResponse(x => x.UserDidntWriteAnyMessageInThisTime(selectedUser)); return; } var header = $"Messages from user {selectedUser} starting at {timeRange.Start.ToLocalTimeString()}"; var lines = messages.Select(x => $"{x.SentAt.ToLocalTimeString()} {x.Author.Name}: {x.Content.Replace("```", "")}"); var linesBuilder = new StringBuilder().PrintManyLines(lines.ToArray(), contentStyleBox: true); await this._directMessagesService.TrySendMessage(contexts.User.Id, header); await this._directMessagesService.TrySendMessage(contexts.User.Id, linesBuilder.ToString(), MessageType.NormalText); await messagesService.SendResponse(x => x.SentByDmMessagesOfAskedUser(messages.Count, selectedUser)); }
public static List <Message> getMessages() { MessagesCommand messages = new MessagesCommand(); return(messages.carregarMensagens()); }