示例#1
0
        public async Task <SearchResultDto> search(string q, SearchType t, int p)
        {
            var url = "";

            if (t == SearchType.repos)
            {
                url = "https://api.github.com/search/repositories?q=" + q + "&per_page=10&page=" + p;
            }
            else
            {
                url = "https://api.github.com/search/users?q=" + q + "&per_page=10&page=" + p;
            }

            var client = _clientFactory.CreateClient();

            client.DefaultRequestHeaders.UserAgent.TryParseAdd("hos4am");
            var request  = new HttpRequestMessage(HttpMethod.Get, url);
            var response = await client.SendAsync(request);

            if (response.IsSuccessStatusCode)
            {
                var             result = response.Content.ReadAsStringAsync().Result;
                SearchResultDto obj    = Newtonsoft.Json.JsonConvert.DeserializeObject <SearchResultDto>(result);
                return(obj);
            }
            else
            {
                return(null);
            }
        }
 private void PopulateTreeWithTypes(SearchResultDto <ContentType> contentTypes)
 {
     if (contentTypes != null)
     {
         treeViewLC.BeginUpdate();
         var rootNode = new TreeNode("Content Types");
         treeViewLC.Nodes.Add(rootNode);
         foreach (var doc in contentTypes.Documents)
         {
             var node = new TreeNode(doc.Name);
             rootNode.Nodes.Add(node);
             var fieldsNode = new TreeNode("Fields");
             foreach (var field in doc.Fields)
             {
                 fieldsNode.Nodes.Add(JsonConvert.SerializeObject(field, Formatting.Indented));
             }
             doc.Fields     = null;
             doc.Properties = null;
             node.Nodes.Add(JsonConvert.SerializeObject(doc, Formatting.Indented));
             node.Nodes.Add(fieldsNode);
             //UNDONE: add content type properties to each new node
         }
         treeViewLC.EndUpdate();
     }
 }
 private IHttpActionResult Search(string username, ISearchingCriterion <Offer>[] criteria, SortType sortType, SortBy sortBy)
 {
     using (var context = _provider.GetNewContext())
     {
         if (context is DbContext)
         {
             (context as DbContext).Configuration.ProxyCreationEnabled = false;
         }
         if (string.IsNullOrEmpty(username))
         {
             return(NotFound());
         }
         User u = context.Users.FirstOrDefault(us => us.Username.Equals(username));
         if (u == null)
         {
             return(NotFound());
         }
         IQueryable <Offer> offers = context.Offers.Where(o => o.VendorId != u.Id).Where(o => !o.IsBooked);
         offers = criteria.Aggregate(offers, (current, criterion) => current.Where(criterion.SelectableExpression));
         offers = offers.Take(20).OrderBy(sortType, sortBy);
         List <Offer>    list = offers.ToList();
         SearchResultDto dto  = new SearchResultDto()
         {
             Offers = list
         };
         return(Ok(dto));
     }
 }
        public async Task <IActionResult> Keyword(string pPageToken, string pSearchKeyword)
        {
            if (string.IsNullOrEmpty(pPageToken))
            {
                return(ErrorProblem());
            }

            if (string.IsNullOrEmpty(pSearchKeyword))
            {
                return(ErrorProblem());
            }

            if (pSearchKeyword.Length < 2)
            {
                return(View(new SearchResultDto()));
            }


            AbstractSearchResultDto songsList = new SearchResultDto();

            songsList = await _youtubeSearch.SearchListByKeyword(pSearchKeyword, pPageToken);

            songsList.TagsList = await _tagEntity.GetRandomTags();

            return(View(songsList));
        }
        public async Task <ISearchResultDto> GetSearchResult(string apiKey)
        {
            SearchResultDto mySearchObject = new SearchResultDto();

            mySearchObject = await apiClient.GetAsync <SearchResultDto>(omdbUrl + apiKey);

            return(mySearchObject);
        }
        public async Task OnSearchClicked()
        {
            if (string.IsNullOrWhiteSpace(Query))
            {
                return;
            }

            if (Query.Length > 100)
            {
                return;
            }

            IsSearching = true;
            bool            isError = false;
            SearchResultDto result  = null;

            try
            {
                result = await ApiClient.Search(Query);
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Search exception; Query: {Query}", Query);
                isError = true;
            }

            Query       = null;
            IsSearching = false;

            if (isError || result == null)
            {
                return;
            }

            string url = "/search/error?";

            switch (result.Type)
            {
            case SearchResultType.AddressHash:
                url = $"/address/{result.Id}";
                break;

            case SearchResultType.BlockHash:
                url = $"/block/{result.Id}";
                break;

            case SearchResultType.BlockNumber:
                url = $"/block-height/{result.Id}";
                break;

            case SearchResultType.TransactionHash:
                url = $"/transaction/{result.Id}";
                break;
            }

            UriHelper.NavigateTo(url);
        }
        public SearchPageViewModel(string keyword, SearchResultDto searchResult, Uri requestedUrl, LanguageDto language)
            : base(requestedUrl, language)
        {
            Keyword    = keyword;
            Items      = searchResult.Records;
            TotalCount = searchResult.TotalRecords;


            PaginationViewModel = new PaginationViewModel(TotalCount, CurrentPage, WebContext.Current.MaxPageSize, WebContext.Current.PagerWindowSize);
        }
示例#8
0
        private SearchResultModel CreateSearchResultModel(SearchResultDto search)
        {
            var model = new SearchResultModel
            {
                Id   = search.Id,
                Rank = search.Rank,
                Body = search.Body
            };

            return(model);
        }
示例#9
0
        public async Task <IActionResult> OnGetLatestChangesAsync()
        {
            var qry     = new GetLatestArticlesQuery(10);
            var results = await _mediator.Send(qry);

            SearchResult = _mapper.Map <SearchResultDto <ArticleSummary> >(results);
            SearchResult.ResultsPerPage = 11;
            SearchResult.CurrentPage    = 1;

            return(Page());
        }
示例#10
0
        public async Task <SearchResultDto> Search(string query)
        {
            string url = $"/v1/search?query={query}";

            using HttpResponseMessage response = await _client.GetAsync(url).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();

            SearchResultDto result = await response.Content.ReadAsAsync <SearchResultDto>().ConfigureAwait(false);

            return(result);
        }
示例#11
0
        public async Task <IActionResult> OnGetAsync([FromQuery(Name = "Query")] string query = "", [FromQuery(Name = "PageNumber")] int pageNumber = 1)
        {
            if (string.IsNullOrEmpty(query))
            {
                return(Page());
            }
            var qry    = new SearchArticlesQuery(query, pageNumber, ResultsPerPage);
            var result = await _mediator.Send(qry);

            SearchResult = _mapper.Map <SearchResultDto <ArticleSummary> >(result);

            return(Page());
        }
        public ActionResult GetSearchedServices([FromQuery] string name, [FromQuery] double lat, [FromQuery] double lng)
        {
            SearchServiceDto sSDto = new SearchServiceDto {
                Name = name, Position = new Position {
                    Lat = lat, Lng = lng
                }
            };
            SearchResultDto searchResult = new SearchResultDto();

            Coordinate origin = new Coordinate(sSDto.Position.Lat, sSDto.Position.Lng);

            List <Result> serviceSearchResult   = new List <Result>();
            int           totalServiceFound     = 0;
            int           totalSearchedServices = 0;

            foreach (var service in _services)
            {
                Coordinate destination = new Coordinate(service.Position.Lat, service.Position.Lng);
                totalSearchedServices++;

                if (service.Name.ToUpper().Contains(name.ToUpper()) || name.ToUpper() == service.Name.ToUpper())
                {
                    Result result = new Result();
                    result.Service = service;

                    totalServiceFound++;


                    if (name.ToUpper() == service.Name.ToUpper())
                    {
                        result.Score += 10;
                    }
                    if (service.Name.ToUpper().Contains(name.ToUpper()))
                    {
                        result.Score += 5;
                    }
                    result.Distance = GeoCalculator.GetDistance(origin, destination, 15, DistanceUnit.Kilometers);

                    serviceSearchResult.Add(result);
                }
            }

            searchResult.TotalHits      = totalServiceFound;
            searchResult.TotalDocuments = totalSearchedServices;
            searchResult.Results        = serviceSearchResult;



            return(Ok(searchResult));
        }
示例#13
0
        public static SearchResultModel FromDto(SearchResultDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new SearchResultModel
            {
                citizens = dto.Citizens?.Select(a => CitizenModel.FromDto(a)).ToArray(),
                is_successed = dto.IsSuccessed,
                message = dto.Message,
                error = dto.Error
            });
        }
示例#14
0
        public ActionResult <SearchResultDto> Get(string q)
        {
            var result = new SearchResultDto();

            if (string.IsNullOrWhiteSpace(q))
            {
                return(Ok(result));
            }

            result.Kanjis   = FindSimilarKanjis(q);
            result.Homonyms = FindHomonyms(q);
            result.Synonyms = FindSynonyms(q);

            return(Ok(result));
        }
        public static SearchResultDto ToDto(this ISearchResponse <WebsiteInfo> searchResponse, SearchPagination pagination, SearchContentDTO searchedContent)
        {
            SearchResultDto result = new SearchResultDto
            {
                SearchHits     = searchResponse.Hits.ToDtos(),
                SearchMetadata = new SearchMetadataDto
                {
                    Took            = searchResponse.Took,
                    Total           = searchResponse.Total,
                    SearchedContent = searchedContent
                },
                SearchPagination = pagination
            };

            return(result);
        }
示例#16
0
文件: Search.cs 项目: hiwamn/Mukta
        public SearchResultDto Execute(SearchDto dto)
        {
            SearchResultDto result = new SearchResultDto {
                Status = true, Message = Messages.Success,
            };

            result.Object = new SearchObject
            {
                Expense  = unit.Expense.Search(dto),
                Feedback = unit.Feedback.Search(dto),
                Lead     = unit.Lead.Search(dto),
                Order    = unit.Order.Search(dto),
                Party    = unit.Party.Search(dto)
            };
            return(result);
        }
示例#17
0
        private SearchResultModel CreateSearchResultModel(SearchResultDto search)
        {
            var model = new SearchResultModel
            {
                Id               = search.Id,
                Title            = search.Title,
                PostType         = search.PostType,
                CreationDate     = search.CreationDate,
                AcceptedAnswerId = search.AcceptedAnswerId,
                Rank             = search.Rank,
                Body             = search.Body,
                ParentID         = search.ParentID,
                Score            = search.Score
            };

            return(model);
        }
示例#18
0
        public async Task When_execution_always_fails_it_should_try_till_max_try_count()
        {
            var tryCount = 0;
            var maxTry   = 5;
            var result   = await SearchExecutor.Run((page) =>
            {
                tryCount++;
                SearchResultDto searchResult = null;
                return(Task.FromResult(searchResult));
            },
                                                    maxTry,
                                                    5,
                                                    TimeSpan.FromMilliseconds(5));

            Assert.AreEqual(maxTry, tryCount);
            Assert.IsEmpty(result);
        }
 private void PopulateTreeWithItems(SearchResultDto <ContentItem> contentItems)
 {
     if (contentItems != null)
     {
         treeViewLC.BeginUpdate();
         var rootNode = new TreeNode("Content Items");
         treeViewLC.Nodes.Add(rootNode);
         foreach (var doc in contentItems.Documents)
         {
             var node = new TreeNode(doc.ContentTypeName + ": " + doc.Name);
             rootNode.Nodes.Add(node);
             node.Nodes.Add(JsonConvert.SerializeObject(doc, Formatting.Indented));
             //UNDONE: add content item properties to each new node
         }
         treeViewLC.EndUpdate();
     }
 }
示例#20
0
        /// <summary>
        /// Возвращает результат поиска в виде объекта для передачи
        /// </summary>
        /// <param name="query">Строка поиска</param>
        /// <param name="page">Необходимая страница</param>
        /// <returns></returns>
        public SearchResultDto SearchRow(string query, int page)
        {
            if (page > 0)
            {
                SearchResultDto result;

                using (db = new MyDbContext())
                {
                    var records = GetFileRowsNoTrackingQuery().Where(x => x.Text.Contains(query));

                    var recordsCount = records.Count();

                    var pageSize      = 20;
                    var recordsToSkip = pageSize * (page - 1);

                    var searchResult = records.OrderBy(x => x.Text)
                                       .Skip(recordsToSkip)
                                       .Take(pageSize)
                                       .OrderBy(x => x.Number)
                                       .Select(x => new FileRowModel
                    {
                        RowNumber = x.Number,
                        RowText   = x.Text
                    })
                                       .ToList();

                    result = new SearchResultDto
                    {
                        ResultsOnPage = searchResult,
                        ResultsCount  = recordsCount,
                        CurrentPage   = page,
                        PagesCount    = (int)Math.Ceiling((double)recordsCount / pageSize)
                    };
                }

                return(result);
            }
            else
            {
                throw new ArgumentOutOfRangeException("page");
            }
        }
示例#21
0
        public void SearchTvShowAsync()
        {
            const string query     = "TvShowTitle";
            var          resultDto = new SearchResultDto <string, SearchTv>()
            {
                CurrentCollection = new List <string>
                {
                    "True Detective"
                },
                QueryCollection = new List <SearchTv>()
            };

            _fixture.MockService.Setup(_ => _.SearchTvShowAsync(query)).ReturnsAsync(resultDto);
            var controller = new TvShowController(_fixture.MockService.Object, _fixture.Mapper);

            var result = controller.SearchTvShowAsync(query);

            var viewResult = Assert.IsType <PartialViewResult>(result.Result);

            Assert.IsType <SearchResultViewModel <string, SearchTv> >(viewResult.Model);
        }
示例#22
0
        public void SearchMovieAsyncTest()
        {
            const string query     = "movie-title";
            var          resultDto = new SearchResultDto <int, SearchMovie>
            {
                CurrentCollection = new List <int>
                {
                    1, 2
                },
                QueryCollection = new List <SearchMovie>()
            };

            _fixture.MockService.Setup(_ => _.SearchMovieAsync(query)).ReturnsAsync(resultDto);
            var controller = new MovieController(_fixture.MockService.Object, _fixture.Mapper);

            var result = controller.SearchMovieAsync(query);

            var viewResult = Assert.IsType <PartialViewResult>(result.Result);

            Assert.IsType <SearchResultViewModel <int, SearchMovie> >(viewResult.Model);
        }
        public async Task AddResultToDbAsync(SearchResultDto searchResult)
        {
            await _context.AddAsync(searchResult);

            await SaveChangesAsync();
        }
 /// <summary>
 /// Returns the SearchResultDto containing the data of the given SearchResult
 /// </summary>
 /// <param name="searchResult">SearchResult to convert</param>
 /// <returns>Converted SearchResultDto</returns>
 public static SearchResultDto ConvertSearchResultToDto(SearchResult searchResult)
 {
     var resultDto = new SearchResultDto();
     resultDto.Customers = new List<CustomerDto>();
     resultDto.Bookings = new List<BookingDto>();
     if (searchResult.Customers != null)
     {
         resultDto.Customers = searchResult.Customers.ConvertAll(ConvertCustomerToDto);
     }
     if (searchResult.Bookings != null)
     {
         resultDto.Bookings = searchResult.Bookings.ConvertAll(ConvertBookingToDto);
     }
     return resultDto;
 }
        public async Task <IList <SearchResultDto> > Search(string searchText)
        {
            //This is here just for convenience to avoid create FTS indexes manually
            if (!_ftsEngine.DoIndexesExist())
            {
                await CreateFtsIndexesAsync();
            }

            var result          = new List <SearchResultDto>();
            var restaurants     = _searchManager.SearchRestaurants(searchText).OrderByDescending(x => x.Value.Count).ThenBy(x => x.Key.Rank);
            var foundCategories = _searchManager.SearchCategories(searchText);

            //TODO: Automapper could be used
            foreach (KeyValuePair <Restaurant, List <MenuItem> > keyValuePair in restaurants)
            {
                var resultDto = new SearchResultDto
                {
                    Id             = keyValuePair.Key.Id,
                    LogoPath       = keyValuePair.Key.LogoPath,
                    Rank           = keyValuePair.Key.Rank,
                    RestaurantName = keyValuePair.Key.Name,
                    Suburb         = keyValuePair.Key.Suburb
                };

                result.Add(resultDto);

                foreach (MenuItem menuItem in keyValuePair.Value)
                {
                    var category    = foundCategories.FirstOrDefault(x => x.Name == menuItem.Category.Name);
                    var menuItemDto = new MenuItemDto
                    {
                        Id    = menuItem.Id,
                        Name  = menuItem.Name,
                        Price = menuItem.Price
                    };

                    if (category != null)
                    {
                        var categoryDto = resultDto.CategoryGroups.FirstOrDefault(x => x.Id == category.Id);

                        if (categoryDto == null)
                        {
                            categoryDto = new CategoryGroupDto
                            {
                                Name = category.Name,
                                Id   = category.Id
                            };

                            resultDto.CategoryGroups.Add(categoryDto);
                        }

                        categoryDto.MenuItems.Add(menuItemDto);
                    }
                    else
                    {
                        resultDto.MenuItems.Add(menuItemDto);
                    }
                }
            }

            return(result);
        }