Esempio n. 1
0
        /// <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()
                                                  )
            });
        }
Esempio n. 2
0
 /// <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));
 }