Esempio n. 1
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            try
            {
                item             = Item.Database.GetItem(Rendering.DataSource);
                isDatasourceNull = item == null ? true : false;

                if (!isDatasourceNull)
                {
                    NameValueListField deptList = item.Fields["Default URL"];
                    if (deptList != null)
                    {
                        System.Collections.Specialized.NameValueCollection nameValueCollection = deptList.NameValues;

                        foreach (string deptName in nameValueCollection.AllKeys)
                        {
                            if (User.Current.IsInRole("hscnet\\SC_" + deptName + "_CONTENT"))
                            {
                                targetLocation = nameValueCollection[deptName];
                                break;
                            }
                        }
                    }
                }
            }
            catch
            {
                isDatasourceNull = true;
            }
        }
Esempio n. 2
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            try
            {
                item             = Item.Database.GetItem(Rendering.DataSource);
                isDatasourceNull = item == null ? true : false;

                if (isDatasourceNull)
                {
                    throw new ArgumentNullException("args.Item");
                }
                else
                {
                    status         = item.Fields["Status"].Value;
                    targetLocation = item.Fields["Target Location"].Value;
                    if (String.IsNullOrEmpty(item.Fields["Status"].Value))
                    {
                        status = "Permanent";
                    }
                }
            }
            catch
            {
                isDatasourceNull = true;
            }
        }
        public void GetSettingsShouldGenerateCampaingUrlWithScCampParameter()
        {
            // Arrange
            A.CallTo(() => _linkManager.GetItemUrl(A<Item>.Ignored, A<UrlOptions>.Ignored))
                .Returns("http://host/path?sneaky=parameter");

            A.CallTo(() => _pageContext.Item)
                .Returns(new TestItem());

            var rendering = new Sitecore.Mvc.Presentation.Rendering();
            rendering.Parameters["Goal"] = "TestGoal";
            rendering.Parameters["EventName"] = "TestEvent";
            var campaignId = ID.NewID;
            rendering.Parameters["Campaign"] = campaignId.ToString();
            A.CallTo(() => _renderingContext.Rendering)
                .Returns<Sitecore.Mvc.Presentation.Rendering>(rendering);

            // Act
            var settings = _settingsProvider.GetSettings();

            NameValueCollection query = null;
            Uri uri = null;
            if (Uri.TryCreate(settings.CampaignQueryString, UriKind.RelativeOrAbsolute, out uri))
            {
                query = HttpUtility.ParseQueryString(uri.Query);
            }

            // Assert
            Assert.NotNull(uri);
            Assert.NotNull(query);
            Assert.Contains<string>("sc_camp", query.AllKeys);
            Assert.True(ShortID.IsShortID(query["sc_camp"]), "sc_camp must be a ShortID");
            Assert.Equal<ID>(ShortID.Parse(query["sc_camp"]).ToID(), campaignId);
        }
        protected override JObject ProcessItem(Item item,
                                               Sitecore.Mvc.Presentation.Rendering rendering,
                                               IRenderingConfiguration renderingConfig)
        {
            var processedItem = base.ProcessItem(item, rendering, renderingConfig);

            if (!item.DescendsFrom(new ID(CheckoutNavigation.TemplateId)))
            {
                return(processedItem);
            }

            var checkoutNavigation = this.sitecoreContext.Cast <ICheckoutNavigation>(item);
            var checkoutSteps      = checkoutNavigation?.CheckoutSteps;

            if (checkoutSteps == null || !checkoutSteps.Any())
            {
                return(processedItem);
            }

            var firstStep = this.sitecoreContext.GetItem <ICheckoutStep>(checkoutSteps.ElementAt(0));

            processedItem.Add("url", firstStep.Url);

            return(processedItem);
        }
Esempio n. 5
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            DisplayDatasourceChildrensChildren = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.DisplayDatasourceChildrensChildren] != "1" ? false : true;
            DisplayDatasource = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.DisplayDatasource] != "1" ? false : true;

            List <ListViewDisplayItem> displayItems = new List <ListViewDisplayItem>();

            if (DisplayDatasource)
            {
                displayItems.Add(new ListViewDisplayItem(Rendering.Item, true));
            }

            //DisplayItems.ToList().ForEach(item => displayItems.Add(new ListViewDisplayItem(item, false)));

            var childDisplayItems = GetListViewDisplayItems(DisplayItems, DisplayDatasourceChildrensChildren);

            childDisplayItems.ToList().ForEach(d => displayItems.Add(d));

            ListViewDisplayItems = displayItems.ToArray();

            Rounded               = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListRoundedCorners] == "0" ? null : "true";
            Theme                 = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListTheme] ?? null;
            DataCountTheme        = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListCountTheme] ?? null;
            DataDividerTheme      = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListDividerTheme] ?? null;
            DataFilter            = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListFilter] == "1" ? "true" : null;
            DataFilterDefaultText = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListFilterDefaultText] ?? null;
            DataFilterTheme       = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListFilterTheme] ?? null;
            DataHeaderTheme       = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListHeaderTheme] ?? null;
            DataIcon              = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListIcon] ?? null;
            DataSplitIcon         = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListSplitIcon] ?? null;
            DataSplitTheme        = Rendering.Parameters[MobileFieldNames.ListViewRenderingParameters.ListSplitTheme] ?? null;
        }
Esempio n. 6
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            HeadingTagName = Rendering.Parameters[SitecoreMobile.MobileFieldNames.HeadingViewRenderingParameters.HeadingTagName] ?? "h1";
            
        }
        public virtual void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            var current = Sitecore.Mvc.Common.ContextService.Get().GetCurrent <ViewContext>();

            _htmlHelper        = new HtmlHelper(current, new Sitecore.Mvc.Presentation.ViewDataContainer(current.ViewData));
            SitecoreMainHelper = Sitecore.Mvc.HtmlHelperExtensions.Sitecore(_htmlHelper);
        }
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            ImageFieldName   = Rendering.Parameters[MobileFieldNames.SlideshowViewRenderingParameters.ImageFieldName];
            CaptionFieldName = Rendering.Parameters[MobileFieldNames.SlideshowViewRenderingParameters.CaptionFieldName];

            JsonParameters = Rendering.Parameters[MobileFieldNames.SlideshowViewRenderingParameters.JsonParameters];

            int w = 400;
            int h = 240;

            int.TryParse(Rendering.Parameters[MobileFieldNames.SlideshowViewRenderingParameters.ImageWidth], out w);
            int.TryParse(Rendering.Parameters[MobileFieldNames.SlideshowViewRenderingParameters.ImageHeight], out h);

            ImageWidth  = w;
            ImageHeight = h;

            DisplayItems = DisplayItems.Where(i => !string.IsNullOrEmpty(i[ImageFieldName])).ToArray();

            List <SlideshowDisplayItem> resultItems = new List <SlideshowDisplayItem>();

            foreach (var i in DisplayItems)
            {
                resultItems.Add(new SlideshowDisplayItem(i, ImageFieldName));
            }
            SlideshowDisplayItems = resultItems.ToArray();
        }
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            InitializeRenderingParameters();

            InitializeListViewDisplayItems();
        }
Esempio n. 10
0
        //Function to return rendering placeholder
        private JObject addPlaceHolderPath(Sitecore.Mvc.Presentation.Rendering rendering,
                                           IRenderingConfiguration renderingConfig)
        {
            var result     = base.ResolveContents(rendering, renderingConfig) ?? new JObject();
            var jsonResult = (JObject)result;

            jsonResult[PlaceholderPathKey] = rendering.Placeholder;
            return(jsonResult);
        }
Esempio n. 11
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            bool pageEditEnabled = (Sitecore.Context.Site.DisplayMode == Sitecore.Sites.DisplayMode.Edit);

            bool hiddenEditingField = rendering.Parameters[MobileFieldNames.StandardViewRenderingParameters.HiddenEditingField] == "1" ? true : false;

            if (hiddenEditingField && !pageEditEnabled)
            {
                return;
            }
            InitializeBeaconViewRendering();
        }
        protected override SC.Mvc.Presentation.Renderer GetRenderer(
            SC.Mvc.Presentation.Rendering rendering,
            SC.Mvc.Pipelines.Response.GetRenderer.GetRendererArgs args)
        {
            string xsltPath = this.GetXsltPath(rendering, args);

            if (string.IsNullOrEmpty(xsltPath))
            {
                return(null);
            }

            return(new SC.Sharedsource.Mvc.Presentation.XsltRenderer {
                Path = xsltPath, Rendering = rendering
            });
        }
Esempio n. 13
0
        public override object ResolveContents(Sitecore.Mvc.Presentation.Rendering rendering, IRenderingConfiguration renderingConfig)
        {
            var childCategories = GetChildCategories(Sitecore.Context.Item);

            return(new
            {
                Categories = childCategories.Select(x => new
                {
                    x.ID,
                    Path = x.Paths.FullPath,
                    x.DisplayName,
                    Active = Sitecore.Context.Item.ID == x.ID
                }).ToArray()
            });
        }
Esempio n. 14
0
        /// <summary>
        /// Gets the renderer.
        /// </summary>
        /// <param name="rendering">The rendering.</param>
        /// <param name="args">The args.</param>
        /// <returns>Sitecore.Mvc.Presentation.Renderer.</returns>
        protected override Sitecore.Mvc.Presentation.Renderer GetRenderer(
            Sitecore.Mvc.Presentation.Rendering rendering,
            GetRendererArgs args)
        {
            var renderItem = rendering.Item.Database.GetItem(new ID(rendering.RenderingItemPath));

            if (renderItem.TemplateName == "GlassDynamicRazor")
            {
                var render = new DynamicViewRenderer();
                render.Path        = renderItem["Name"];
                render.ContextName = renderItem["ContextName"];
                render.DataSource  = rendering.DataSource;
                return(render);
            }

            return(null);
        }
        public void GenericConnectorShouldReturnViewResult()
        {
            //Arrange
            var rendering = new Sitecore.Mvc.Presentation.Rendering();
            rendering.Parameters["NetworkName"] = "SocialNetworkName";
            A.CallTo(() => renderingContext.Rendering)
                .Returns<Sitecore.Mvc.Presentation.Rendering>(rendering);

            var user = new TestUser(true);
            A.CallTo(() => authenticationManager.GetActiveUser())
                .Returns<User>(user);

            //Act
            var result = controller.GenericConnector() as ViewResult;

            //Assert
            Assert.NotNull(result);
        }
Esempio n. 16
0
 public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
 {
     base.Initialize(rendering);
     try
     {
         //Set model specific objects
         Rendering = rendering;
         dsSet     = !String.IsNullOrEmpty(rendering.DataSource);
         if (dsSet)
         {
             datasourcePath = rendering.Item.Paths.Path;
             dsEditable     = Helpers.IsDatasourceEditable(rendering.Item, PageItem.Paths.Path);
         }
     }
     catch (Exception ex)
     {
         Util.LogError(ex.Message, ex, this);
     }
 }
Esempio n. 17
0
        /// <summary>
        /// Gets the renderer.
        /// </summary>
        /// <param name="rendering">The rendering.</param>
        /// <param name="args">The args.</param>
        /// <returns>Sitecore.Mvc.Presentation.Renderer.</returns>
        protected override Sitecore.Mvc.Presentation.Renderer GetRenderer(
            Sitecore.Mvc.Presentation.Rendering rendering,
            GetRendererArgs args)
        {
            var renderItem = rendering.Item.Database.GetItem(new ID(rendering.RenderingItemPath));

            if (renderItem.TemplateName == "GlassBehindRazor")
            {
                BehindViewRenderer render = new BehindViewRenderer();
                render.Path     = renderItem["Name"];
                render.Type     = renderItem["Type"];
                render.Assembly = renderItem["assembly"];

                render.DataSource = rendering.DataSource;
                return(render);
            }

            return(null);
        }
Esempio n. 18
0
        public override object ResolveContents(Sitecore.Mvc.Presentation.Rendering rendering, IRenderingConfiguration renderingConfig)
        {
            var contextItem = GetContextItem(rendering, renderingConfig);

            var linkField          = (LookupField)contextItem.Fields[Templates.CategoryNavigation.StartingPoint];
            var categorySitecoreId = linkField.TargetID;
            var childCategories    = GetChildCategories(categorySitecoreId);

            return(new
            {
                Categories = childCategories?.Select(x => new
                {
                    x.ID,
                    Path = x.Paths.FullPath,
                    x.DisplayName,
                    Active = Sitecore.Context.Item.Paths.FullPath.Contains(x.Paths.FullPath)
                }).ToArray()
            });
        }
 public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
 {
     base.Initialize(rendering);
     try
     {
         Item item = Item.Database.GetItem(Rendering.DataSource);
         IsDatasourceNull = (item != null ? false : true);
         if (IsDatasourceNull)
         {
             throw new ArgumentNullException("args.Item");
         }
         else
         {
             layouts = item.Fields["Layout"];
         }
     }
     catch
     {
         IsDatasourceNull = true;
     }
 }
        public override object ResolveContents(Sitecore.Mvc.Presentation.Rendering rendering, IRenderingConfiguration renderingConfig)
        {
            Assert.ArgumentNotNull(rendering, nameof(rendering));
            Assert.ArgumentNotNull(renderingConfig, nameof(renderingConfig));

            Item ds = GetContextItem(rendering, renderingConfig);

            var recommendedItemsFieldId = Templates.RecommendedForYouTemplate.RecommendedItemsFieldId;

            //if the rendering datasource has curated items
            if (ds.Fields.Contains(recommendedItemsFieldId) && !string.IsNullOrWhiteSpace(ds.Fields[recommendedItemsFieldId].Value))
            {
                List <string> recItemIds = ds.Fields[recommendedItemsFieldId].Value.Split('|').ToList();
                foreach (var id in recItemIds)
                {
                    var item         = Sitecore.Context.Database.GetItem(new ID(id));
                    var articleModel = MapItemToRenderingModelItem(item, GetItemUrl(item));
                    items.Add(articleModel);
                }
            }

            if (!items.Any())
            {
                return(null);
            }

            JObject jobject = new JObject()
            {
                ["items"] = (JToken) new JArray()
            };

            List <Item> objList = items != null?items.ToList() : null;

            if (objList == null || objList.Count == 0)
            {
                return(jobject);
            }
            jobject["items"] = ProcessItems(objList, rendering, renderingConfig);
            return(jobject);
        }
Esempio n. 21
0
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            PageEditEnabled = (Sitecore.Context.Site.DisplayMode == Sitecore.Sites.DisplayMode.Edit);

            SiteContextItem = PageItem.Database.GetItem(String.Concat(Sitecore.Context.Site.RootPath, Sitecore.Context.Site.StartItem)); //

            var styleBundleNameField = SiteContextItem.Fields["SiteStyleBundleName"];

            SiteStyleBundleName = styleBundleNameField != null && !string.IsNullOrEmpty(styleBundleNameField.Value) ? styleBundleNameField.Value : null;

            var scriptBundleNameField = SiteContextItem.Fields["SiteScriptBundleName"];

            SiteScriptBundleName = scriptBundleNameField != null && !string.IsNullOrEmpty(scriptBundleNameField.Value) ? scriptBundleNameField.Value : null;

            var themeField = Item.Fields["PageTheme"];

            ThemeName = themeField != null && !string.IsNullOrEmpty(themeField.Value) ? themeField.Value : null;

            var titleField = Item.Fields["PageTitle"];

            Title = titleField != null && !string.IsNullOrEmpty(titleField.Value) ? titleField.Value : null;

            var headerPosField = Item.Fields["PageHeaderPosition"];

            HeaderPos = headerPosField != null && !string.IsNullOrEmpty(headerPosField.Value) ? headerPosField.Value : null;

            var footerPosField = Item.Fields["PageFooterPosition"];

            FooterPos = footerPosField != null && !string.IsNullOrEmpty(footerPosField.Value) ? footerPosField.Value : null;

            var headerThemeField = Item.Fields["PageHeaderTheme"];

            HeaderTheme = headerThemeField != null && !string.IsNullOrEmpty(headerThemeField.Value) ? headerThemeField.Value : null;

            var footerThemeField = Item.Fields["PageFooterTheme"];

            FooterTheme = footerThemeField != null && !string.IsNullOrEmpty(footerThemeField.Value) ? footerThemeField.Value : null;
        }
        public void GetSettingsShouldGenerateValidCampaingUrl()
        {
            // Arrange
            A.CallTo(() => _linkManager.GetItemUrl(A<Item>.Ignored, A<UrlOptions>.Ignored))
                .Returns("http://host/path?sneaky=parameter");

            A.CallTo(() => _pageContext.Item)
                .Returns(new TestItem());

            var rendering = new Sitecore.Mvc.Presentation.Rendering();
            rendering.Parameters["Goal"] = "TestGoal";
            rendering.Parameters["EventName"] = "TestEvent";
            rendering.Parameters["Campaign"] = ID.NewID.ToString();
            A.CallTo(() => _renderingContext.Rendering)
                .Returns<Sitecore.Mvc.Presentation.Rendering>(rendering);

            // Act
            var settings = _settingsProvider.GetSettings();

            // Assert
            Assert.True(Uri.IsWellFormedUriString(settings.CampaignQueryString, UriKind.RelativeOrAbsolute));
        }
        public static RenderingReference GetRenderingReference(this Sitecore.Mvc.Presentation.Rendering rendering, Language language, Database database)
        {
            if (!rendering.IsXmlBasedRendering())
            {
                return(null);
            }

            var text = rendering.Properties["RenderingXml"];

            XElement element;

            try
            {
                element = XElement.Parse(text);
            }
            catch (Exception ex)
            {
                Log.Error($"Failed to parse rendering xml definition for rendering '{rendering.RenderingItemPath}'", ex, rendering.GetType());
                return(null);
            }

            return(new RenderingReference(element.ToXmlNode(), language, database));
        }
        public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
        {
            base.Initialize(rendering);

            DisplayItem = Rendering.Item;

            FormFieldName  = Rendering.Parameters[MobileFieldNames.StandardFormViewRenderingParameters.FormFieldName] ?? "submit";
            FormFieldValue = Rendering.Parameters[MobileFieldNames.StandardFormViewRenderingParameters.FormFieldValue] ?? "submit";
            FormFieldTitle = Rendering.Parameters[MobileFieldNames.StandardFormViewRenderingParameters.FormFieldTitle] ?? "Submit";

            var buttonText  = (string)null;
            var buttonClass = (string)null;

            buttonText  = Rendering.Parameters[MobileFieldNames.StandardFormViewRenderingParameters.FormFieldTitle];
            buttonClass = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonStyle] ?? null;

            ButtonModel = new SitecoreMobile.Models.ButtonModel()
            {
                ButtonType         = "submit",
                ButtonId           = FormFieldName,
                ButtonName         = FormFieldName,
                ButtonText         = buttonText,
                CssClass           = buttonClass,
                ButtonIcon         = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonIcon],
                ButtonTheme        = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonTheme],
                ButtonInline       = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonInline] == "1" ? true : false,
                ButtonMini         = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonMini] == "1" ? true : false,
                ButtonIconPosition = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonIconPosition],
                ButtonIconShadow   = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonIconShadow] == "1" || string.IsNullOrEmpty(Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonIconShadow]) ? true : false,
                ButtonCorners      = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonCorners] == "1" || string.IsNullOrEmpty(Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonCorners]) ? true : false,
                ButtonShadow       = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonShadow] == "1" || string.IsNullOrEmpty(Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonShadow]) ? true : false,
                ButtonPopupOverlay = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonPopupOverlay] == "1" || string.IsNullOrEmpty(Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonPopupOverlay]) ? true : false,
                ButtonTransition   = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonTransition] ?? null,
                ButtonMode         = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonMode] ?? null,
                ButtonRole         = Rendering.Parameters[MobileFieldNames.ButtonViewRenderingParameters.ButtonRole] ?? null
            };
        }
Esempio n. 25
0
        public override object ResolveContents(
            Sitecore.Mvc.Presentation.Rendering rendering,
            IRenderingConfiguration renderingConfig)
        {
            RenderingItem renderingItem = rendering.RenderingItem;

            if (renderingItem == null)
            {
                return(addPlaceHolderPath(rendering, renderingConfig));
            }

            string str = renderingItem.InnerItem[Sitecore.JavaScriptServices.Core.FieldIDs.JsonRendering.GraphQLQuery];

            if (string.IsNullOrWhiteSpace(str))
            {
                return(addPlaceHolderPath(rendering, renderingConfig));
            }
            AppConfiguration appConfiguration = this._configurationResolver.ResolveForItem(Context.Item);

            if (appConfiguration == null)
            {
                this._log.Warn("[JSS] - Rendering " + renderingItem.InnerItem.Paths.FullPath + " defined a GraphQL query to resolve its data, but when rendered on item " + Context.Item.Paths.FullPath + " it was not within a known JSS app path. The GraphQL query will not be used.", (object)this);
                return(addPlaceHolderPath(rendering, renderingConfig));
            }
            if (string.IsNullOrWhiteSpace(appConfiguration.GraphQLEndpoint))
            {
                this._log.Error("[JSS] - The JSS app " + appConfiguration.Name + " did not have a graphQLEndpoint set, but rendering " + renderingItem.InnerItem.Paths.FullPath + " defined a GraphQL query to resolve its data. The GraphQL query will not be used until an endpoint is defined on the app config.", (object)this);
                return(addPlaceHolderPath(rendering, renderingConfig));
            }
            IGraphQLEndpoint graphQlEndpoint;

            if (!this._graphQLEndpoints.TryGetValue(appConfiguration.GraphQLEndpoint, out graphQlEndpoint))
            {
                this._log.Error("[JSS] - The JSS app " + appConfiguration.Name + " is set to use GraphQL endpoint " + appConfiguration.GraphQLEndpoint + ", but no GraphQL endpoint was registered with this URL. GraphQL resolution will not be used.", (object)this);
                return(addPlaceHolderPath(rendering, renderingConfig));
            }
            GraphQLAwareRenderingContentsResolver.LocalGraphQLRequest localGraphQlRequest1 = new GraphQLAwareRenderingContentsResolver.LocalGraphQLRequest();
            localGraphQlRequest1.Query = str;
            GraphQLAwareRenderingContentsResolver.LocalGraphQLRequest localGraphQlRequest2 = localGraphQlRequest1;
            localGraphQlRequest2.LocalVariables.Add("contextItem", (object)Context.Item.ID.Guid.ToString());
            localGraphQlRequest2.LocalVariables.Add("datasource", (object)rendering.DataSource);

            //TODO Replace with correct path - Example of getting rendering field items to get path of card ID's
            string getCardPath = rendering.Item.Fields["sample1"].ToString();

            try
            {
                string   cardIDList = HttpContext.Current.Request.QueryString["cardIDList"];
                string[] cardIDs    = cardIDList.Split(',');
                int      cardInt    = 1;
                foreach (var cardID in cardIDs)
                {
                    localGraphQlRequest2.LocalVariables.Add("cardID" + cardInt, getCardPath + cardID);
                    cardInt++;
                }
            }
            catch (Exception ex)
            {
                this._log.Error("[JSS] - Something went wrong parsing the comma delimited query string parameter for cardIDList - " + ex.Message.ToString(), (object)this);
            }

            IDocumentExecuter executor = graphQlEndpoint.CreateDocumentExecutor();
            ExecutionOptions  options  = graphQlEndpoint.CreateExecutionOptions((GraphQLRequest)localGraphQlRequest2, !HttpContext.Current.IsCustomErrorEnabled);

            if (options == null)
            {
                throw new ArgumentException("Endpoint returned null options.");
            }
            TransformationResult transformationResult = graphQlEndpoint.SchemaInfo.QueryTransformer.Transform((GraphQLRequest)localGraphQlRequest2);

            if (transformationResult.Errors != null)
            {
                return (object)new ExecutionResult()
                       {
                           Errors = transformationResult.Errors
                       }
            }
            ;
            options.Query    = transformationResult.Document.OriginalQuery;
            options.Document = transformationResult.Document;
            if (options.Document.Operations.Any <Operation>((Func <Operation, bool>)(op => (uint)op.OperationType > 0U)))
            {
                throw new InvalidOperationException("Cannot use mutations or subscriptions in a datasource query. Use queries only.");
            }
            using (QueryTracer queryTracer = graphQlEndpoint.Performance.TrackQuery((GraphQLRequest)localGraphQlRequest2, options))
            {
                ExecutionResult result = this._asyncHelpers.RunSyncWithThreadContext <ExecutionResult>((Func <Task <ExecutionResult> >)(() => executor.ExecuteAsync(options)));
                graphQlEndpoint.Performance.CollectMetrics(graphQlEndpoint.SchemaInfo.Schema, (IEnumerable <Operation>)options.Document.Operations, result);
                new QueryErrorLog((ILogger) new BaseLogAdapter(this._log)).RecordQueryErrors(result);
                queryTracer.Result = result;
                //return (object)this._documentWriter.ToJObject((object)result);
                var jsonResultToConvert = (object)this._documentWriter.ToJObject((object)result);
                var jsonResult          = (JObject)jsonResultToConvert;
                jsonResult[PlaceholderPathKey] = rendering.Placeholder;
                return(jsonResult);
            }
        }
 private static bool IsXmlBasedRendering(this Sitecore.Mvc.Presentation.Rendering rendering)
 {
     return(!rendering.Properties["RenderingXml"].IsWhiteSpaceOrNull());
 }
Esempio n. 27
0
 public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
 {
     base.Initialize(rendering);
     FieldName = Rendering.Parameters[SitecoreMobile.MobileFieldNames.StandardViewRenderingParameters.FieldName];
     InitializeDisplayItem();
 }
Esempio n. 28
0
 protected override object CreateDefaultModel(
     SC.Mvc.Presentation.Rendering rendering,
     SC.Mvc.Pipelines.Response.GetModel.GetModelArgs args)
 {
     return(new SC.Sharedsource.Mvc.Presentation.RenderingModel());
 }
Esempio n. 29
0
 public override void Initialize(Sitecore.Mvc.Presentation.Rendering rendering)
 {
     base.Initialize(rendering);
 }
 /// <summary>
 /// Gets the renderer.
 /// </summary>
 /// <param name="rendering">The rendering.</param>
 /// <param name="args">The args.</param>
 /// <returns>Sitecore.Mvc.Presentation.Renderer.</returns>
 protected abstract Sitecore.Mvc.Presentation.Renderer GetRenderer(Sitecore.Mvc.Presentation.Rendering rendering, GetRendererArgs args);
        public override object ResolveContents(Sitecore.Mvc.Presentation.Rendering rendering, IRenderingConfiguration renderingConfig)
        {
            var contextItem = GetContextItem(rendering, renderingConfig);

            if (contextItem == null)
            {
                return(new { });
            }

            var selectionField = (DatasourceField)contextItem.Fields[Templates.Products.Selection];

            var query = selectionField.Value;

            if (String.IsNullOrEmpty(query))
            {
                return(new { });
            }

            var searchItems   = new List <CommerceSellableItemSearchResultItem>();
            var searchManager = CommerceTypeLoader.CreateInstance <ICommerceSearchManager>();

            using (var context = searchManager.GetIndex().CreateSearchContext())
            {
                var searchStringModels = SearchStringModel.ParseDatasourceString(query);

                searchItems = LinqHelper.CreateQuery <CommerceSellableItemSearchResultItem>(context, searchStringModels)
                              .Where(x => x.CommerceSearchItemType == CommerceSearchItemType.SellableItem)
                              .Where(x => x.Language == Sitecore.Context.Language.Name)
                              .ToList();
            }

            searchItems = searchItems
                          .GroupBy(x => x.ProductId)
                          .Select(x => x.First())
                          .ToList();

            // Create products from search result
            var products = new List <object>();

            foreach (var searchItem in searchItems)
            {
                var sitecoreItem = searchItem.GetItem();

                // Add variants
                if (sitecoreItem.HasChildren)
                {
                    foreach (Sitecore.Data.Items.Item child in sitecoreItem.GetChildren())
                    {
                        products.Add(GetProduct(searchItem, sitecoreItem, child.Name));
                    }
                }
                // No variants add single product
                else
                {
                    products.Add(GetProduct(searchItem, sitecoreItem));
                }
            }

            return(new
            {
                Heading = ((TextField)contextItem.Fields[Templates.Products.Heading]).Value,
                Products = products.ToArray()
            });
        }
        public void TwitterTweetShouldPopulateViewbag()
        {
            //Arrange
            var rendering = new Sitecore.Mvc.Presentation.Rendering();
            rendering.Parameters["NetworkName"] = "SocialNetworkName";
            A.CallTo(() => renderingContext.Rendering)
                .Returns<Sitecore.Mvc.Presentation.Rendering>(rendering);

            var user = new TestUser(true);
            A.CallTo(() => authenticationManager.GetActiveUser())
                .Returns<User>(user);

            var testItem = new TestItem();
            A.CallTo(() => pageContext.Item)
                .Returns(testItem);

            //Act
            var result = controller.TwitterTweet() as ViewResult;

            //Assert
            Assert.NotNull(result.ViewBag.ItemId);
            Assert.NotNull(result.ViewBag.EventName);
            Assert.NotNull(result.ViewBag.EventUrl); ;
            Assert.NotNull(result.ViewBag.GoalName);
            Assert.NotNull(result.ViewBag.CampaignQueryString);
            Assert.NotNull(result.ViewBag.SharePageUrl);
        }
        public void FacebookLikeShouldReturnViewResult()
        {
            //Arrange
            var rendering = new Sitecore.Mvc.Presentation.Rendering();
            rendering.Parameters["NetworkName"] = "SocialNetworkName";
            A.CallTo(() => renderingContext.Rendering)
                .Returns<Sitecore.Mvc.Presentation.Rendering>(rendering);

            var user = new TestUser(true);
            A.CallTo(() => authenticationManager.GetActiveUser()).Returns<User>(user);

            A.CallTo(() => linkManager.GetDefaultUrlOptions())
                .Returns(new Sitecore.Links.UrlOptions());
            A.CallTo(() => linkManager.GetItemUrl(A<Item>.Ignored))
                .Returns("http://host/path");

            A.CallTo(() => pageContext.Item)
                .Returns(new TestItem());


            //Act
            var result = controller.FacebookLike() as ViewResult;

            //Assert
            Assert.NotNull(result);
        }