private async Task <ResponseParams> CreateMessageWithSetsForYear(long chatId, int pageNum, int year) { var pageSize = 10; var pageIndex = pageNum - 1; var sets = await _dbContext.Sets .Where(x => x.Year == year) .OrderBy(x => x.Name) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); var sb = new StringBuilder(); for (int i = 0; i < sets.Count; i++) { sb.Append($"{i + 1 + pageSize * pageIndex}. <b>{sets[i].Name}</b>{Environment.NewLine}") .Append($" Подробнее про этот набор: {LinkPrefix}{sets[i].SetNumber}{Environment.NewLine}"); } var totalCount = await _dbContext.Sets.Where(x => x.Year == year).CountAsync(); var hasRemaining = totalCount % pageSize != 0; var pagesCount = totalCount / pageSize + (hasRemaining ? 1 : 0); var pagingButtons = PagingButtonCreator.CreatePagingButtons(pagesCount, pageNum, Years_Sets_SourceName, year); var response = new ResponseParams(chatId, sb.ToString()) { ResponseMarkup = pagingButtons }; return(response); }
private async Task <ResponseParams> CreateMessageWithThemesSearch(long chatId, int pageNum) { var pageSize = 10; var pageIndex = pageNum - 1; var themes = await _dbContext.Themes .Where(x => x.ParentId == null) .OrderBy(x => x.Name) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); var sb = new StringBuilder(); for (int i = 0; i < themes.Count; i++) { sb.Append($"{i + 1 + pageSize * pageIndex}. <b>{themes[i].Name}</b>{Environment.NewLine}") .Append($" Наборы по этой теме: /tid_{themes[i].ThemeId}{Environment.NewLine}"); } var totalCount = await _dbContext.Themes.Where(x => x.ParentId == null).CountAsync(); var hasRemaining = totalCount % pageSize != 0; var pagesCount = totalCount / pageSize + (hasRemaining ? 1 : 0); var pagingButtons = PagingButtonCreator.CreatePagingButtons(pagesCount, pageNum, ThemeSourceName); var response = new ResponseParams(chatId, sb.ToString()) { ResponseMarkup = pagingButtons }; return(response); }
private async Task <ResponseParams> CreateMessageWithYearsSearch(long chatId, int pageNum) { var pageSize = 10; var pageIndex = pageNum - 1; var years = await _dbContext.Sets .Select(x => x.Year) .Distinct() .OrderBy(x => x) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); var sb = new StringBuilder(); for (int i = 0; i < years.Count; i++) { sb.Append($"{i + 1 + pageSize * pageIndex}. <b>{years[i]}</b>{Environment.NewLine}") .Append($" Наборы в этом году: /yid_{years[i]}{Environment.NewLine}"); } var totalCount = await _dbContext.Sets.Select(x => x.Year).Distinct().CountAsync(); var hasRemaining = totalCount % pageSize != 0; var pagesCount = totalCount / pageSize + (hasRemaining ? 1 : 0); var pagingButtons = PagingButtonCreator.CreatePagingButtons(pagesCount, pageNum, YearsSourceName); var response = new ResponseParams(chatId, sb.ToString()) { ResponseMarkup = pagingButtons }; return(response); }