/// <summary> /// Обновление результатов фильтра /// </summary> /// <param name="filter">параметры фильтра</param> private async Task UpdateBooksSearchCashAsync(BooksSearchFilter filter) { var books = new List <DtoSearchresultBook>(); var filteredBooks = await _repoBooks.FilteredBooksToListAsync ( year : filter.BookYear, name : filter.BookName ); if (filteredBooks != null) { foreach (var filterBook in filteredBooks) { var authors = await _repoAuthors .GetAuthorsByExtIdAsync( filterBook.AuthorExternalId); var book = _mapper.Map <DtoSearchresultBook>(filterBook); book.AuthorFirst = authors.First().NameUa; book.AuthorsNext = authors.NextAuthors() .OrderBy(b => b[0]).ToList(); books.Add(book); } } _cache.Remove(SearchId); _cache.Set(SearchId, filter.AuthorName == DEFAULT_FILTER ? books : books .DtoBookFilterByAuthor(filter.AuthorName.ToNameUa()), new MemoryCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromMilliseconds ( value: _userSession.User.Expirate - DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() ) }); }
/// <summary> /// Результат фильтрации книг /// </summary> /// <param name="filter">объект параметров фильра</param> /// <returns>Объект результатов поиска</returns> public Paginator <DtoSearchresultBook> GetPaginatorResultModal(BooksSearchFilter filter) { UpdateBooksSearchCashAsync(filter).GetAwaiter().GetResult(); return(GetBooksSearchPaginator(1, _pagerSettings.ItemPerPage, filter.Target)); }