/// <summary> /// Обновление результатов фильтра /// </summary> /// <param name="filter">параметры фильтра</param> private async Task UpdateThesesSearchCashAsync(ThesesSearchFilter filter) { var theses = new List <DtoSearchresultThesis>(); var filteredTheses = await _repoTheses.FilteredThesesToListAsync ( year : filter.ThesisYear, name : filter.ThesisName, pages : filter.Pages ); if (filteredTheses != null) { foreach (var filterThesis in filteredTheses) { var authors = await _repoAuthors .GetAuthorsByExtIdAsync( filterThesis.AuthorExternalId); var thesis = _mapper.Map <DtoSearchresultThesis>(filterThesis); thesis.Authors = authors.Select(l => l.NameUa).ToList(); thesis.Authors.OrderBy(a => a[0]).ToList(); theses.Add(thesis); } } _cache.Remove(SearchId); _cache.Set(SearchId, filter.AuthorName == DEFAULT_FILTER ? theses : theses .DtoThesisFilterByAuthor(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 <DtoSearchresultThesis> GetPaginatorResultModal(ThesesSearchFilter filter) { UpdateThesesSearchCashAsync(filter).GetAwaiter().GetResult(); return(GetThesesSearchPaginator(1, _pagerSettings.ItemPerPage, filter.Target)); }