Пример #1
0
        public JsonResult Get(SearchSettings model)
        {
            IPublishedContent currentNode    = null;
            SearchSettings    SearchSettings = SettingsRepository.Get();

            if (DomainService == null)
            {
                DomainService = Services.DomainService;
            }

            if (Domains == null)
            {
                Domains = DomainService.GetAll(true).ToList();
            }

            var currentDomain = NodeService.GetCurrentDomain(Domains, model.CurrentURL);

            if (currentDomain != null)
            {
                currentNode = UmbracoContext.ContentCache.GetById(currentDomain.RootContentId.Value);
                SearchSettings.RedirectNodeURL = NodeService.GetRedirectNodeURL(currentNode, SearchSettings.RedirectAlias);
            }
            else
            {
                IPublishedContent rootNode   = UmbracoContext.ContentCache.GetAtRoot().FirstOrDefault();
                IPublishedContent searchPage = rootNode.DescendantOrSelf(SearchSettings.RedirectAlias);

                if (searchPage != null)
                {
                    currentNode = rootNode;
                    SearchSettings.RedirectNodeURL = searchPage.Url;
                }
            }

            JsonResult json = new JsonResult()
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new {
                    id      = SearchSettings.Id,
                    baseUrl = SearchSettings.BaseURL,
                    //cxKey = SearchSettings.CXKey,
                    //apiKey = SearchSettings.APIKey,
                    itemsPerPage       = SearchSettings.ItemsPerPage,
                    redirectPath       = !String.IsNullOrEmpty(SearchSettings.RedirectNodeURL) ? SearchSettings.RedirectNodeURL : "",
                    excludeUrls        = !String.IsNullOrEmpty(SearchSettings.ExcludeNodeIds) ? String.Join(",", NodeService.GetPathsByUdi(SearchSettings.ExcludeNodeIds)) : "",
                    loadMoreSetUp      = SearchSettings.LoadMoreSetUp,
                    maxPaginationPages = SearchSettings.MaxPaginationPages,
                    showQuery          = SearchSettings.ShowQuery,
                    showTotalCount     = SearchSettings.ShowTotalCount,
                    showTiming         = SearchSettings.ShowTiming,
                    showSpelling       = SearchSettings.ShowSpelling,
                    excludeNodeIds     = SearchSettings.ExcludeNodeIds,
                    showFilterFileType = SearchSettings.ShowFilterFileType,
                    showThumbnail      = SearchSettings.ShowThumbnail,
                    thumbnailFallback  = !String.IsNullOrEmpty(SearchSettings.ThumbnailFallbackGUID) ? NodeService.GetMediaPathByUdi(SearchSettings.ThumbnailFallbackGUID) : "",
                    preloaderIcon      = !String.IsNullOrEmpty(SearchSettings.LoadIconGUID) ? NodeService.GetMediaPathByUdi(SearchSettings.LoadIconGUID) : "",
                    developmentURL     = SearchSettings.DevelopmentURL,
                    currentNodeId      = currentNode.Id,
                    keepquery          = SearchSettings.KeepQuery
                }
            };

            return(json);
        }