}                                       // Example "|" ... originally tried adding this as input to rule, but, oddly a single pipe as a value breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|"; // hard code for now

            if (string.IsNullOrWhiteSpace(ruleContext.Reference.Settings.Parameters))
            {
                ruleContext.Reference.Settings.Parameters = $"{Name}={Term ?? string.Empty}}}";
                return;
            }

            var urlString = new UrlString(ruleContext.Reference.Settings.Parameters);
            var rawValue  = urlString.Parameters[Name];

            if (string.IsNullOrWhiteSpace(rawValue))
            {
                urlString.Append(Name, Term ?? string.Empty);
                return;
            }

            if (!rawValue.EndsWith(Delimiter))
            {
                rawValue += Delimiter;
            }
            rawValue += Term;

            urlString.Append(Name, rawValue);
            ruleContext.Reference.Settings.Parameters = urlString.GetUrl();
        }
        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no parameters, nothing to remove
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    continue;
                }

                // Parse case
                var urlString = new UrlString(rendering.Parameters);
                if (string.IsNullOrEmpty(urlString.Parameters[Name]))
                {
                    continue; // does not exist, nothing to remove
                }

                urlString.Remove(Name);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) cleared parameter {Name}");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) cleared parameter {Name}", this);
            }
        }
        }                                       // Example "|" ... ugh this breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|";

            if (string.IsNullOrWhiteSpace(ruleContext.Reference.Settings.Parameters))
            {
                return;
            }

            var urlString = new UrlString(ruleContext.Reference.Settings.Parameters);
            var rawValue  = urlString.Parameters[Name];

            if (string.IsNullOrWhiteSpace(rawValue))
            {
                return;
            }

            var valueList = rawValue.Split(new string[] { Delimiter }, StringSplitOptions.RemoveEmptyEntries);
            var newList   = string.Join(Delimiter,
                                        valueList.Where(x => x != null && !HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term), StringComparison.OrdinalIgnoreCase))
                                        );

            urlString.Append(Name, newList ?? string.Empty);
            ruleContext.Reference.Settings.Parameters = urlString.GetUrl();
        }
Пример #4
0
        protected virtual void Run(ClientPipelineArgs args)
        {
            string databaseName = args.Parameters["databasename"];
             string id = args.Parameters["id"];

             Database database = Factory.GetDatabase(databaseName);
             Assert.IsNotNull(database, typeof (Database), "Database \"" + database + "\" not found.", new object[0]);
             Item item = database.Items[id];

             if (item != null)
             {
                     if (item.Fields[FieldIDs.LayoutField] != null && item.Fields[FieldIDs.LayoutField].Value != string.Empty)
            {
                  if (!args.IsPostBack)
                  {
                     UrlString url = new UrlString(UIUtil.GetUri("control:Calendar.ConfigureControls"));
                     url.Append("id", item.ID.ToString());
                     url.Append("db", item.Database.Name);

                     Windows.RunApplication("Calendar ConfigureControls", url.GetUrl());
                  }
            }
            else
            {
               Context.ClientPage.ClientResponse.Alert(ResourceManager.Localize("ITEM_HAS_NO_LAYOUT"));
            }
             }
             else
             {
            SheerResponse.Alert("Item not found.", new string[0]);
             }
        }
Пример #5
0
        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no existing parameters
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    rendering.Parameters        = $"{Name}={Value ?? string.Empty}}}";
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this);
                    continue;
                }

                // Parse case, set new value keeping other name-value pairs

                // Value matches case, exit
                var urlString = new UrlString(rendering.Parameters);
                if (!string.IsNullOrWhiteSpace(urlString[Name]) &&
                    HttpUtility.UrlDecode(urlString[Name]).Equals(HttpUtility.UrlDecode(Value)))
                {
                    continue;
                }

                urlString.Append(Name, Value ?? string.Empty);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this);
            }
        }
Пример #6
0
        }                                       // Example "|" ... originally tried adding this as input to rule, but, oddly a single pipe as a value breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|"; // hard code for now

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no parameters, set our name-value directly (no conflicts)
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    rendering.Parameters        = $"{Name}={Term ?? string.Empty}";
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
                    continue;
                }

                var urlString = new UrlString(rendering.Parameters);
                var rawValue  = urlString.Parameters[Name];

                // Missing parameter case, add our name-value to list
                if (string.IsNullOrWhiteSpace(rawValue))
                {
                    urlString.Append(Name, Term ?? string.Empty);
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
                    continue;
                }

                if (!rawValue.EndsWith(Delimiter))
                {
                    rawValue += Delimiter;
                }

                // Case already exists
                if (string.Concat(Delimiter, HttpUtility.UrlDecode(rawValue)).Contains(string.Concat(Delimiter, HttpUtility.UrlDecode(Term), Delimiter)))
                {
                    continue;
                }

                rawValue += Term;
                urlString.Append(Name, rawValue);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
            }
        }
        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");

            if (string.IsNullOrWhiteSpace(ruleContext.Reference.Settings.Parameters))
            {
                ruleContext.Reference.Settings.Parameters = $"{Name}={Value ?? string.Empty}}}";
                return;
            }
            var urlString = new UrlString(ruleContext.Reference.Settings.Parameters);

            urlString.Append(Name, Value ?? string.Empty);
            ruleContext.Reference.Settings.Parameters = urlString.GetUrl();
        }
        protected void PostStep(Item item)
        {
            Assert.ArgumentNotNull(item, "item");

             if (callback != null)
             {
            callback(item.ID.ToString());
             }

             UrlString url = new UrlString();
             url.Append("ro", item.ID.ToString());
             url.Append("fo", item.ID.ToString());
             url.Append("id", item.ID.ToString());
             url.Append("la", item.Language.Name);
             url.Append("vs", item.Version.Number.ToString());
             Windows.RunApplication("Content editor", url.GetUrl());
        }
        }                                       // Example "|" ... ugh this breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|";

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no value, nothing to clear
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    continue;
                }

                // Missing parameter case, nothing to clear
                var urlString = new UrlString(rendering.Parameters);
                var rawValue  = urlString.Parameters[Name];
                if (string.IsNullOrWhiteSpace(rawValue))
                {
                    continue;
                }

                // Missing value case, nothing to clear
                var valueList = rawValue.Split(new string[] { Delimiter }, StringSplitOptions.RemoveEmptyEntries);
                if (!valueList.Any(x => x != null && HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term))))
                {
                    continue;
                }

                // Remove term
                var newList = string.Join(Delimiter,
                                          valueList.Where(x => x != null && !HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term), StringComparison.OrdinalIgnoreCase))
                                          );
                urlString.Append(Name, newList ?? string.Empty);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} removed term '{Term}'");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} removed term '{Term}'", this);
            }
        }
        protected void PostStep(Item item)
        {
            Assert.ArgumentNotNull(item, "item");

             if (item.TemplateID == CalendarIDs.ModuleSettingsTemplate)
             {
            tpModuleSettings.Value = item.ID.ToString();
            OnChangeModuleSettings(this, null);
             }
             else
             {
            tpSettingsItem.Value = item.ID.ToString();
            OnChangeSettingsItem(this, null);
             }

             Context.ClientPage.ClientResponse.Redraw();

             UrlString url = new UrlString();
             url.Append("ro", item.ID.ToString());
             url.Append("fo", item.ID.ToString());
             url.Append("id", item.ID.ToString());
             url.Append("la", item.Language.Name);
             url.Append("vs", item.Version.Number.ToString());
             Windows.RunApplication("Content editor", url.GetUrl());
        }
Пример #11
0
        protected override bool DoProcessRequest(HttpContext context)
        {
            Assert.ArgumentNotNull((object)context, nameof(context));
            MediaRequest mediaRequest = this.GetMediaRequest(context.Request);

            if (mediaRequest == null)
            {
                return(false);
            }
            string url    = (string)null;
            Media  media1 = MediaManager.GetMedia(mediaRequest.MediaUri);

            if (media1 == null)
            {
                using (new SecurityDisabler())
                    media1 = MediaManager.GetMedia(mediaRequest.MediaUri);
                if (media1 == null)
                {
                    url = Settings.ItemNotFoundUrl;
                }
                else
                {
                    Assert.IsNotNull((object)Context.Site, Helper.Constants.Properties.Site);
                    if (!Context.User.IsAuthenticated &&
                        Context.Site.RequireLogin &&
                        !string.IsNullOrEmpty(Context.Site.LoginPage))
                    {
                        url = Context.Site.LoginPage;
                        if (Settings.Authentication.SaveRawUrl)
                        {
                            UrlString urlString = new UrlString(url);
                            urlString.Append(Helper.Constants.Properties.Url, HttpUtility.UrlEncode(Context.RawUrl));
                            url = urlString.GetUrl();
                        }
                    }
                    else
                    {
                        url = Settings.NoAccessUrl;
                    }
                }
            }
            else
            {
                bool   flag           = mediaRequest.Options.Thumbnail || media1.MediaData.HasContent;
                string lowerInvariant = media1.MediaData.MediaItem.InnerItem[Helper.Constants.TemplateFields.Path].ToLowerInvariant();
                if (!flag && !string.IsNullOrEmpty(lowerInvariant))
                {
                    Media media2 = MediaManager.GetMedia(new MediaUri(lowerInvariant, Language.Current, Sitecore.Data.Version.Latest, Context.Database));
                    if (media2 != null)
                    {
                        media1 = media2;
                    }
                }
                else if (mediaRequest.Options.UseDefaultIcon && !flag)
                {
                    url = Themes.MapTheme(Settings.DefaultIcon).ToLowerInvariant();
                }
                else if (!mediaRequest.Options.UseDefaultIcon && !flag)
                {
                    url = Settings.ItemNotFoundUrl;
                }
            }
            if (string.IsNullOrEmpty(url))
            {
                return(this.DoProcessRequest(context, mediaRequest, media1));
            }
            HttpContext.Current.Response.Redirect(url);
            return(true);
        }