Exemplo n.º 1
0
        public void GetElasticSearchResult_Calls_ElasticSearch_When_SearchFilterEmpty()
        {
            var sf     = new SearchFilterDataMarketplace();
            var result = _service.GetElasticSearchResult(sf);

            _mockRemoteSearchService.Verify(mock => mock.Search(It.IsAny <SearchRequestDto>()), Times.Once());
        }
Exemplo n.º 2
0
        public async Task NotifyUserAboutUpdates(SearchFilterDataMarketplace sf, List <string> newPids)
        {
            Guard.IsNotNull(sf, newPids);
            string subject       = " ";
            string body          = " ";
            var    messageConfig = await this.GetMessageConfigAsync(sf.User.Id);

            var sendOn   = DateTime.Now.CalculateByInterval(messageConfig.SendInterval);
            var deleteOn = DateTime.Now.CalculateByInterval(messageConfig.DeleteInterval);

            if (sendOn != null)
            {
                deleteOn = sendOn.Value.CalculateByInterval(messageConfig.DeleteInterval);
            }

            var messageTemplate = _messageTemplateService.GetOne(MessageType.StoredQueryResult);

            subject = messageTemplate.Subject.Replace("%SEARCH_NAME%", $"\"{sf.Name}\"");
            body    = messageTemplate.Body.Replace("%UPDATED_RESOURCES%", "<br>" + string.Join("<br>", newPids.Select(x => "<a href=" + x + " </a>" + x)));

            var messageDto = new MessageDto {
                Subject = subject, Body = body, SendOn = sendOn, DeleteOn = deleteOn
            };

            AddMessage(sf.User.Id, messageDto);
        }
        public User AppendStoredQueryToSearchFilterDataMarketplace(User user, SearchFilterDataMarketplace sf, StoredQuery sq)
        {
            using var context = new AppDataContext(_dbOptions);
            var searchfilter = user.SearchFiltersDataMarketplace.Where(x => x.Id == sf.Id).FirstOrDefault();

            searchfilter.StoredQuery = sq;
            return(UpdateAndSaveUser(context, user));
        }
        public void AssignStoredQueryToSearchDatamarketPlace(SearchFilterDataMarketplace sf, StoredQuery sq)
        {
            using var context = new AppDataContext(_dbOptions);
            var storedqiery  = context.StoredQueries.Find(sq.Id);
            var searchfilter = context.SearchFilterDataMarketplace.Find(sf.Id);

            searchfilter.StoredQuery = sq;
            this.Update <SearchFilterDataMarketplace>(searchfilter);
        }
        public User AppendSearchFilterDataMarketplaceToUser(SearchFilterDataMarketplace sf, User user)
        {
            using var context = new AppDataContext(_dbOptions);
            var dbUser = context.Users.Find(user.Id);

            if (dbUser.SearchFiltersDataMarketplace == null)
            {
                dbUser.SearchFiltersDataMarketplace = new Collection <SearchFilterDataMarketplace>();
            }
            dbUser.SearchFiltersDataMarketplace.Add(sf);
            return(UpdateAndSaveUser(context, dbUser));
        }
Exemplo n.º 6
0
        public async Task <SearchResultDTO> GetElasticSearchResult(SearchFilterDataMarketplace searchfilter)
        {
            Guard.IsNotNull(searchfilter);
            var aggregationFilters = searchfilter.FilterJson != null?searchfilter.FilterJson.GetValue("aggregations").ToObject <Dictionary <string, List <string> > >() : new Dictionary <string, List <string> >();

            var rangeFilters = searchfilter.FilterJson != null?searchfilter.FilterJson.GetValue("ranges").ToObject <Dictionary <string, Dictionary <string, string> > >() : new Dictionary <string, Dictionary <string, string> >();

            var searchRequest = new SearchRequestDto()
            {
                From               = 0,
                Size               = 10000,
                SearchTerm         = searchfilter.SearchTerm == null ? "*" : searchfilter.SearchTerm,
                AggregationFilters = aggregationFilters,
                RangeFilters       = rangeFilters,
                EnableHighlighting = false,
                ApiCallTime        = DateTime.Now.ToString()
            };
            var searchResult = await _remoteSearchService.Search(searchRequest);

            return(searchResult);
        }
 public StoredQueryBuilder WithSearchFilterDataMarketplace(SearchFilterDataMarketplace SearchFilterDataMarketplace)
 {
     _entity.SearchFilterDataMarketplace = SearchFilterDataMarketplace;
     return(this);
 }