public ContentSearchService(SearchResultFactory searchResultFactory, SearchContextPredicateBuilder predicateBuilder,
                             SearchContextFilterBuilder filterBuilder, ISearchTermProvider searchTermProvider)
 {
     _searchResultFactory = searchResultFactory;
     _predicateBuilder    = predicateBuilder;
     _filterBuilder       = filterBuilder;
     _searchTermProvider  = searchTermProvider;
 }
Ejemplo n.º 2
0
        public static async Task <IActionResult> RunAsync(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
            ExecutionContext executionContext,
            ILogger logger,
            [Inject] IMusicService musicService,
            [Inject] ISearchTermProvider searchTermProvider)
        {
            try
            {
                var userToken = req.Headers["token"];

                // Check required parameters
                if (string.IsNullOrEmpty(userToken))
                {
                    return(new BadRequestObjectResult("Please provide a user token"));
                }
                else
                {
                    // Get user's count request if any
                    int searchCount = DefaultNumOfTracks;
                    if (req.Query != null && !string.IsNullOrEmpty(req.Query["count"]))
                    {
                        if (int.TryParse(req.Query["count"], out searchCount) && searchCount < 0)
                        {
                            return(new BadRequestObjectResult("Please enter a valid count."));
                        }
                    }

                    // Get a random searchTerm
                    var searchTerm = searchTermProvider.GetRandomSearchTerm(executionContext);

                    // Call the music service for tracks
                    var musicServiceResponse = await musicService.SearchAsync(userToken, searchTerm, searchCount);

                    if (musicServiceResponse.Item1 == HttpStatusCode.OK)
                    {
                        // Return tracks JSON
                        return(new OkObjectResult(musicServiceResponse.Item2));
                    }
                    else
                    {
                        return(new BadRequestObjectResult(musicServiceResponse.Item2));
                    }
                }
            }
            catch (Exception e)
            {
                logger.LogInformation($"GetTrack - Error getting tracks: {e.Message}");
                return(new BadRequestObjectResult("Oops! You don goofed"));
            }
        }
 public SearchContextPredicateBuilder(ISearchTermProvider searchTermProvider)
 {
     _searchTermProvider = searchTermProvider;
 }
Ejemplo n.º 4
0
 //
 // GET: /Search/
 public SearchController(ISearchTermProvider searchTermProvider)
 {
     _searchTermProvider = searchTermProvider;
 }