示例#1
0
        public async Task <HttpResponseMessage> GetTagSearchCount(string csvTagList)
        {
            try
            {
                var results = await this.azureSearch.StorySearchTagCounts(csvTagList);

                var stories = new StoryResultSet
                {
                    Facets  = results.Facets,
                    Stories = null,
                    Count   = results.Count
                };

                var response = Request.CreateResponse(HttpStatusCode.OK, stories, Configuration.Formatters.JsonFormatter);
#if !NO_CACHE_FOR_TESTING_API
                response.Headers.CacheControl = new CacheControlHeaderValue()
                {
                    MaxAge = TimeSpan.FromDays(1), Public = true
                };
#endif
                return(response);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> GetStorySearch(string query                      = "",
                                                               int?pageSize                      = 20,
                                                               int?currentPage                   = 1,
                                                               string parentBiographyID          = "",
                                                               string searchFields               = "all",
                                                               int?interviewYearFilterLowerBound = 0,
                                                               int?interviewYearFilterUpperBound = 0,
                                                               string genderFacet                = "",
                                                               string yearFacet                  = "",
                                                               string makerFacet                 = "",
                                                               string jobFacet                   = "",
                                                               string sortField                  = "",
                                                               bool?sortInDescendingOrder        = false)
        {
            try
            {
                var results = await this.azureSearch.StorySearch(
                    (query == null)?string.Empty : query,
                    (pageSize == null)? 20 : (int)pageSize,
                    (currentPage == null)? 1 : (int)currentPage,
                    (parentBiographyID == null)?string.Empty : parentBiographyID,
                    (searchFields == null)? "all" : searchFields,
                    (interviewYearFilterLowerBound == null)? 0 : (int)interviewYearFilterLowerBound,
                    (interviewYearFilterUpperBound == null)? 0 : (int)interviewYearFilterUpperBound,
                    (genderFacet == null)?string.Empty : genderFacet,
                    (yearFacet == null)?string.Empty : yearFacet,
                    (makerFacet == null)?string.Empty : makerFacet,
                    (jobFacet == null)?string.Empty : jobFacet,
                    (sortField == null)? "" : sortField,
                    (sortInDescendingOrder == null)?false : (bool)sortInDescendingOrder
                    );

                var stories = new StoryResultSet
                {
                    Facets  = results.Facets,
                    Stories = results.Results,
                    Count   = results.Count
                };

                var response = Request.CreateResponse(HttpStatusCode.OK, stories, Configuration.Formatters.JsonFormatter);
#if !NO_CACHE_FOR_TESTING_API
                response.Headers.CacheControl = new CacheControlHeaderValue()
                {
                    MaxAge = TimeSpan.FromDays(1), Public = true
                };
#endif
                return(response);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> GetFavoritesSet(string csvStoryIDs = "",
                                                                string genderFacet = "",
                                                                string yearFacet   = "",
                                                                string makerFacet  = "",
                                                                string jobFacet    = "")
        {
            var storyList = new List <string>();

            foreach (var item in csvStoryIDs.Split(','))
            {
                var id = item.Trim();
                if (id != "")
                {
                    storyList.Add(id);
                }
            }

            try
            {
                var results = await this.azureSearch.StorySet(
                    storyList,
                    (genderFacet == null)?string.Empty : genderFacet,
                    (yearFacet == null)?string.Empty : yearFacet,
                    (makerFacet == null)?string.Empty : makerFacet,
                    (jobFacet == null)?string.Empty : jobFacet
                    );

                var stories = new StoryResultSet
                {
                    Facets  = results.Facets,
                    Stories = results.Results,
                    Count   = results.Count
                };

                var response = Request.CreateResponse(HttpStatusCode.OK, stories, Configuration.Formatters.JsonFormatter);
#if !NO_CACHE_FOR_TESTING_API
                response.Headers.CacheControl = new CacheControlHeaderValue()
                {
                    MaxAge = TimeSpan.FromDays(1), Public = true
                };
#endif
                return(response);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
        }
        public async Task <HttpResponseMessage> GetTagSearch(string csvTagList,
                                                             int?pageSize       = 20,
                                                             int?currentPage    = 1,
                                                             string genderFacet = "",
                                                             string yearFacet   = "",
                                                             string makerFacet  = "",
                                                             string jobFacet    = "")
        {
            try
            {
                var results = await this.azureSearch.StorySearchByTags(
                    (csvTagList == null)? "" : csvTagList,
                    (pageSize == null)? 20 : (int)pageSize,
                    (currentPage == null)? 1 : (int)currentPage,
                    (genderFacet == null)?string.Empty : genderFacet,
                    (yearFacet == null)?string.Empty : yearFacet,
                    (makerFacet == null)?string.Empty : makerFacet,
                    (jobFacet == null)?string.Empty : jobFacet
                    );

                var stories = new StoryResultSet
                {
                    Facets  = results.Facets,
                    Stories = results.Results,
                    Count   = results.Count
                };

                var response = Request.CreateResponse(HttpStatusCode.OK, stories, Configuration.Formatters.JsonFormatter);
#if !NO_CACHE_FOR_TESTING_API
                response.Headers.CacheControl = new CacheControlHeaderValue()
                {
                    MaxAge = TimeSpan.FromDays(1), Public = true
                };
#endif
                return(response);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage
                {
                    StatusCode = HttpStatusCode.InternalServerError,
                    Content = new StringContent(ex.Message)
                });
            }
        }