/// <summary> /// Обновление результатов фильтра /// </summary> /// <param name="filter">параметры фильтра</param> private async Task UpdatePostsSearchCashAsync(PostsSearchFilter filter) { var posts = new List <DtoSearchresultPost>(); var filteredPosts = await _repoPosts.FilteredPostsToListAsync ( year : filter.PostYear, name : filter.PostName, magazine : filter.Magazine ); if (filteredPosts != null) { foreach (var filterPost in filteredPosts) { var authors = await _repoAuthors .GetAuthorsByExtIdAsync( filterPost.AuthorExternalId); var post = _mapper.Map <DtoSearchresultPost>(filterPost); post.Authors = authors.Select(l => l.NameUa).ToList(); post.Authors.OrderBy(a => a[0]).ToList(); posts.Add(post); } } _cache.Remove(SearchId); _cache.Set(SearchId, filter.AuthorName == DEFAULT_FILTER ? posts : posts .DtoPostFilterByAuthor(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 <DtoSearchresultPost> GetPaginatorResultModal(PostsSearchFilter filter) { UpdatePostsSearchCashAsync(filter).GetAwaiter().GetResult(); return(GetPostsSearchPaginator(1, _pagerSettings.ItemPerPage, filter.Target)); }