Example #1
0
        /// <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()
                                                  )
            });
        }
Example #2
0
 /// <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));
 }