public async Task <ApiResult <PagedResponse <Quote> > > GetApprovedQuotes([FromQuery] string?guildsFilter, [FromQuery] PagingFilter pagingFilter) { ValidatePagingFilter(pagingFilter); var userGuilds = (await _natsDiscordService.GetMutualGuildsFor(UserDiscordId)).Select(x => x.Id.ToString()); var filter = guildsFilter?.Split(",").Where(x => userGuilds.Contains(x)) ?? userGuilds; return(Ok(await _natsQuoteService.FindApproved(filter, pagingFilter))); }
public async Task QuotesList(int pageNumber = 1) { if (pageNumber <= 0) { await ReplyAsync(embed : new EmbedBuilder() .WithTitle("What did you think would happen?") .WithDescription("Page not found.") .WithColor(Color.Red) .WithCurrentTimestamp() .Build() ); return; } var quotesList = await _natsQuotesService.FindApproved( new[] { Context.Guild.Id.ToString() }, new PagingFilter { PageNumber = pageNumber, PageSize = ListPageSize, } ); var totalPages = quotesList.TotalRows / ListPageSize; if (pageNumber > totalPages) { await ReplyAsync(embed : new EmbedBuilder() .WithTitle("Page doesn't exist") .WithDescription("Page not found.") .WithColor(Color.Red) .WithCurrentTimestamp() .Build() ); return; } var reply = new EmbedBuilder() .WithTitle($"Quotes Page #{pageNumber}"); foreach (var quote in quotesList.Items) { reply.AddField($"#{quote.QuoteNumber}: {quote.Title}", $"{quote.User.Username}#{quote.User.Discriminator}", true); } await ReplyAsync(embed : reply .WithColor(Color.Blue) .WithCurrentTimestamp() .Build() ); }