Esempio n. 1
0
        public HttpResponseMessage CreateSiteMap()
        {
            try
            {
                SearchParameters parameters = new SearchParameters();
                parameters.limit = 50000;

                Models.SearchParameters searchParameters = CreateSearchParameters(parameters);

                searchParameters.AddDefaultFacetsIfMissing();
                Models.SearchResult searchResult = _searchService.Search(searchParameters);

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

                var results = new SearchResult(searchResult, urlHelper).Results;

                var xml = CreateSiteMap(results);

                return(new HttpResponseMessage
                {
                    Content = new StringContent(xml.OuterXml, System.Text.Encoding.UTF8, "application/xml")
                });
            }
            catch (Exception ex)
            {
                Log.Error("Error API", ex);
                return(null);
            }
        }
Esempio n. 2
0
        public SearchResult Opendata([System.Web.Http.ModelBinding.ModelBinder(typeof(SM.General.Api.FieldValueModelBinder))] SearchParameters parameters)
        {
            try
            {
                if (parameters == null)
                {
                    parameters = new SearchParameters();
                }

                Models.SearchParameters searchParameters = CreateSearchParameters(parameters);

                searchParameters.SetFacetOpenData();
                searchParameters.AddDefaultFacetsIfMissing();
                Models.SearchResult searchResult = _searchService.Search(searchParameters);

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

                return(new SearchResult(searchResult, urlHelper));
            }
            catch (Exception ex)
            {
                Log.Error("Error API", ex);
                return(null);
            }
        }
Esempio n. 3
0
        public SearchResult GetRelated(string uuid)
        {
            Models.MetadataViewModel result = _metadataService.GetMetadataViewModelByUuid(uuid);

            Models.SearchResult relatedResult = CreateRelated(result);
            var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

            return(new SearchResult(relatedResult, urlHelper));
        }
Esempio n. 4
0
        public SearchResult DatasetsNamespace(string @namespace, int limit = 10, int offset = 0)
        {
            try
            {
                Models.SearchParameters searchParameters = new Models.SearchParameters();
                searchParameters.Limit  = limit;
                searchParameters.Offset = offset;

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

                Models.SearchResult searchResult = _metadataService.GetMetadataForNamespace(@namespace, searchParameters);

                return(new SearchResult(searchResult, urlHelper));
            }
            catch (Exception ex)
            {
                Log.Error("Error API", ex);
                return(null);
            }
        }
Esempio n. 5
0
        private Models.SearchResult CreateRelated(MetadataViewModel result)
        {
            Models.SearchResult res = null;
            if (result != null && result.Related != null)
            {
                res          = new Models.SearchResult();
                res.NumFound = result.Related.Count();
                res.Offset   = 1;
                res.Limit    = result.Related.Count();
                res.Items    = new List <Models.SearchResultItem>();
                res.Facets   = new List <Models.Facet>();
                res.Facets.Add(new Models.Facet {
                    FacetField = "relateddata", FacetResults = new List <Models.Facet.FacetValue> {
                        new Models.Facet.FacetValue {
                            Count = result.Related.Count(), Name = "relateddata"
                        }
                    }
                });

                foreach (var related in result.Related)
                {
                    Models.SearchResultItem item = new Models.SearchResultItem();
                    item.Title               = related.Title;
                    item.Type                = related.HierarchyLevel;
                    item.Theme               = related.KeywordsNationalTheme != null && related.KeywordsNationalTheme.Count > 0 ? related.KeywordsNationalTheme.FirstOrDefault().KeywordValue : "";
                    item.Organization        = related.ContactOwner != null && related.ContactOwner.Organization != null ? related.ContactOwner.Organization : "";
                    item.OrganizationLogoUrl = related.OrganizationLogoUrl;
                    item.ThumbnailUrl        = related.Thumbnails != null && related.Thumbnails.Count > 0 ? related.Thumbnails[0].URL : "";
                    item.DistributionUrl     = related.DistributionDetails != null && related.DistributionDetails.URL != null ? related.DistributionDetails.URL : null;
                    item.ServiceDistributionUrlForDataset    = related.ServiceDistributionUrlForDataset;
                    item.ServiceWfsDistributionUrlForDataset = related.ServiceWfsDistributionUrlForDataset;
                    item.Uuid = related.Uuid;
                    res.Items.Add(item);
                }
            }

            return(res);
        }