Ejemplo n.º 1
0
        public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionProperty()
        {
            // arrange
            var containerControl = new Mock <IContainerControl>();
            var exception        = new HttpParseException();
            var userControl      = new Mock <UserControl>();

            userControl.Stub(c => c.ID);
            var errorControl = userControl.As <IErrorControl>();

            userControl.Object.ID = "Foo.Bar";
            errorControl.Stub(c => c.Exception);
            containerControl.Setup(tc => tc.LoadControl("~/Skins/VsShirts/Controls/ViewPost.ascx")).Throws(exception);
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns((UserControl)errorControl.Object);
            var skin = new SkinConfig {
                TemplateFolder = "VsShirts"
            };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl;

            // assert
            Assert.AreEqual(exception, control.Exception.InnerException);
        }
Ejemplo n.º 2
0
        public static void load()
        {
            try
            {
                if (File.Exists(file))
                {
                    string fileData = File.ReadAllText(file);
                    config = JsonConvert.DeserializeObject <SkinConfig>(
                        fileData,
                        new JsonSerializerSettings { // allow null values
                        NullValueHandling = NullValueHandling.Ignore
                    }
                        );
                    use();
                }

                if (!File.Exists(fileExample)) // If skin examplefile not exsist - create it
                {
                    init();
                    save(fileExample);
                }
            }
            catch (Exception err)
            {
                log.Error(err, "Can't load skin configuration.");
            }
        }
        public void Ctor_WithStream_SetsXmlAndTemplateFolder()
        {
            // arrange
            var xml = new XmlDocument();

            // act
            var config = new SkinConfig(xml, "Test");

            // assert
            Assert.AreEqual("Test", config.TemplateFolder);
            Assert.AreEqual(xml, config.Xml);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Processes the request.
        /// </summary>
        /// <param name="context">Context.</param>
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentEncoding = Encoding.UTF8;
            context.Response.ContentType     = "text/css";

            var httpContext = new HttpContextWrapper(context);
            var skin        = SkinConfig.GetCurrentSkin(Config.CurrentBlog, httpContext);

            if (skin != null)
            {
                context.Response.Write(skin.CustomCssText);
            }
        }
        public void LoadControl_WithControlName_ReplacesDotWithUnderscoreInId()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var loadedControl = new UserControl {ID = "Foo.Bar"};
            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl);
            var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreEqual("Foo_Bar", control.ID);
        }
        public void LoadControl_WithControlName_LoadsTheControlFromTheSkinFolder()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var loadedControl = new UserControl { ID = "Foo.Bar" };
            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl);
            var skin = new SkinConfig {TemplateFolder = "OfMyChinnyChinChin"};
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreSame(loadedControl, control);
        }
        public void LoadControl_WithControlThrowingHttpException_LoadsFallbackControl()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var fallbackControl = new UserControl { ID = "Foo.Bar" };
            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/ViewPost.ascx")).Returns(fallbackControl);
            var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreSame(fallbackControl, control);
        }
        public void LoadControl_WithControlAndFallbackThrowingHttpException_LoadsErrorControl()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var errorControl = new Error();
            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns(errorControl);
            var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost") as Error;

            // assert
            Assert.AreSame(errorControl, control);
            Assert.AreEqual("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx", control.Exception.ControlPath);
        }
Ejemplo n.º 9
0
        public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionHavingControlPath()
        {
            // arrange
            var containerControl = new Mock <IContainerControl>();
            var exception        = new HttpParseException();
            var errorControl     = new Error();

            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(exception);
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns(errorControl);
            var skin = new SkinConfig {
                TemplateFolder = "OfMyChinnyChinChin"
            };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl;

            // assert
            Assert.AreEqual("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx", control.Exception.ControlPath);
        }
Ejemplo n.º 10
0
        public void LoadControl_WithControlName_ReplacesDotWithUnderscoreInId()
        {
            // arrange
            var containerControl = new Mock <IContainerControl>();
            var loadedControl    = new UserControl {
                ID = "Foo.Bar"
            };

            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl);
            var skin = new SkinConfig {
                TemplateFolder = "OfMyChinnyChinChin"
            };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreEqual("Foo_Bar", control.ID);
        }
Ejemplo n.º 11
0
        public void LoadControl_WithControlName_LoadsTheControlFromTheSkinFolder()
        {
            // arrange
            var containerControl = new Mock <IContainerControl>();
            var loadedControl    = new UserControl {
                ID = "Foo.Bar"
            };

            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl);
            var skin = new SkinConfig {
                TemplateFolder = "OfMyChinnyChinChin"
            };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreSame(loadedControl, control);
        }
Ejemplo n.º 12
0
        public void LoadControl_WithControlThrowingHttpException_LoadsFallbackControl()
        {
            // arrange
            var containerControl = new Mock <IContainerControl>();
            var fallbackControl  = new UserControl {
                ID = "Foo.Bar"
            };

            containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(new HttpException());
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/ViewPost.ascx")).Returns(fallbackControl);
            var skin = new SkinConfig {
                TemplateFolder = "OfMyChinnyChinChin"
            };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost");

            // assert
            Assert.AreSame(fallbackControl, control);
        }
Ejemplo n.º 13
0
        //Find all Skin.CFG files in the plugins folder and add them as pending skins.
        private void LoadAllSkins()
        {
            foreach (string SkinConfig in Directory.EnumerateFiles(BepInEx.Paths.PluginPath, "Skin.cfg", SearchOption.AllDirectories))
            {
                if (SkinConfig.EndsWith("Skin.cfg"))
                {
                    string[] newpath = SkinConfig.Split(new string[] { @"\" }, StringSplitOptions.RemoveEmptyEntries);

                    ConfigFile config          = new ConfigFile(SkinConfig, false);
                    string     currentBodyName = config.Bind <string>("", "CharacterBodyName", "null").Value;

                    if (!pendingSkins.ContainsKey(currentBodyName))
                    {
                        pendingSkins.Add(currentBodyName, new List <PendingSkin>());
                    }

                    pendingSkins[currentBodyName].Add(new PendingSkin()
                    {
                        config = config, bodyName = currentBodyName, SkinFolder = Directory.GetParent(SkinConfig).FullName
                    });
                }
            }
        }
Ejemplo n.º 14
0
        public void Awake()
        {
            floatProperties.Add("_Cull");
            floatProperties.Add("_BlueChannelBias");
            floatProperties.Add("_BlueChannelSmoothness");
            floatProperties.Add("_ColorsOn");
            floatProperties.Add("_DecalLayer");
            floatProperties.Add("_Depth");
            floatProperties.Add("_DitherOn");
            floatProperties.Add("_EliteBrightnessMax");
            floatProperties.Add("_EliteBrightnessMin");
            floatProperties.Add("_EliteIndex");
            floatProperties.Add("_EmPower");
            floatProperties.Add("_EnableCutout");
            floatProperties.Add("_Fade");
            floatProperties.Add("_FadeBias");
            floatProperties.Add("_FlowEmissionStrength");
            floatProperties.Add("_FlowHeightBias");
            floatProperties.Add("_FlowHeightPower");
            floatProperties.Add("_FlowMaskStrength");
            floatProperties.Add("_FlowNormalStrength");
            floatProperties.Add("_FlowSpeed");
            floatProperties.Add("_FlowTextureScaleFactor");
            floatProperties.Add("_FlowmapOn");
            floatProperties.Add("_ForceSpecOn");
            floatProperties.Add("_FresnelBoost");
            floatProperties.Add("_FresnelPower");
            floatProperties.Add("_GreenChannelBias");
            floatProperties.Add("_GreenChannelSmoothness");
            floatProperties.Add("_LimbPrimeMask");
            floatProperties.Add("_LimbRemovalOn");
            floatProperties.Add("_NormalStrength");
            floatProperties.Add("_PrintBias");
            floatProperties.Add("_PrintBoost");
            floatProperties.Add("_PrintDirection");
            floatProperties.Add("_PrintEmissionToAlbedoLerp");
            floatProperties.Add("_PrintOn");
            floatProperties.Add("_RampInfo");
            floatProperties.Add("_SliceAlphaDepth");
            floatProperties.Add("_SliceBandHeight");
            floatProperties.Add("_SliceHeight");
            floatProperties.Add("_Smoothness");
            floatProperties.Add("_SpecularExponent");
            floatProperties.Add("_SpecularStrength");
            floatProperties.Add("_SplatmapOn");
            floatProperties.Add("_SplatmapTileScale");
            floatProperties.Add("_FEON");
            floatProperties.Add("_SrcBlend");
            floatProperties.Add("_DstBlend");
            floatProperties.Add("_InvFade");
            floatProperties.Add("_AlphaBias");
            floatProperties.Add("_AlphaBoost");
            floatProperties.Add("_Boost");
            floatProperties.Add("_CalcTextureAlphaOn");
            floatProperties.Add("_CloudOffsetOn");
            floatProperties.Add("_CloudsOn");
            floatProperties.Add("_DisableRemapOn");
            floatProperties.Add("_ExternalAlpha");
            floatProperties.Add("_FadeCloseDistance");
            floatProperties.Add("_FadeCloseOn");
            floatProperties.Add("_FresnelOn");
            floatProperties.Add("_InternalSimpleBlendMode");
            floatProperties.Add("_OffsetAmount");
            floatProperties.Add("_UseUV1On");
            floatProperties.Add("_VertexAlphaOn");
            floatProperties.Add("_VertexColorOn");
            floatProperties.Add("_VertexOffsetOn");

            colorProperties.Add("_EmColor");

            directory = Application.dataPath;
            directory = System.IO.Path.GetFullPath(System.IO.Path.Combine(directory, @"..\BepInEx\skins"));


            myConfig = new ConfigFile(@"BepInEx\skins\RyanSkinAPI.cfg", true);

            On.RoR2.SurvivorCatalog.Init += (orig) =>
            {
                orig();

                foreach (SurvivorDef survivorDef in SurvivorCatalog.allSurvivorDefs)
                {
                    //Skip 'finished'  prefabs. This is for custom survivors that do skins differently in an incompatible way to the RyanSkinAPI.
                    if (survivorDef.bodyPrefab && survivorDef.bodyPrefab.CompareTag("Finish"))
                    {
                        continue;
                    }

                    AddComponents(survivorDef);

                    if (myConfig.Bind <bool>(new ConfigDefinition("", "DumpBoilerplates"), false).Value)
                    {
                        base.Logger.LogInfo("Dumping " + survivorDef.name);

                        DumpDefaultSkins(survivorDef.bodyPrefab.gameObject);
                    }
                }

                foreach (string ModFolder in Directory.EnumerateDirectories(directory))
                {
                    foreach (string SkinFolder in Directory.EnumerateDirectories(ModFolder))
                    {
                        foreach (string SkinConfig in Directory.EnumerateFiles(SkinFolder))
                        {
                            if (SkinConfig.EndsWith("Skin.cfg"))
                            {
                                string[] newpath = SkinConfig.Split(new string[] { @"\" }, StringSplitOptions.RemoveEmptyEntries);

                                string     RelativePath = @"BepInEx\skins\" + newpath[newpath.Length - 3] + @"\" + newpath[newpath.Length - 2] + @"\" + newpath[newpath.Length - 1];
                                ConfigFile config       = new ConfigFile(RelativePath, false);
                                string     body         = config.Bind <string>("", "CharacterBodyName", "null").Value;

                                pendingSkins.Add(new PendingSkin()
                                {
                                    config = config, bodyName = body, SkinFolder = SkinFolder
                                });
                            }
                        }
                    }
                }
                ;

                foreach (SurvivorDef survivorDef in SurvivorCatalog.allSurvivorDefs)
                {
                    //Skip finished bodies.
                    if (survivorDef.bodyPrefab.CompareTag("Finish"))
                    {
                        continue;
                    }

                    foreach (PendingSkin pendingSkin in pendingSkins)
                    {
                        if (survivorDef.bodyPrefab.name == pendingSkin.bodyName)
                        {
                            AddSkin(survivorDef, pendingSkin.SkinFolder, pendingSkin.config);
                        }
                    }
                }
            };
        }
Ejemplo n.º 15
0
    private void OnGUI()
    {
        if (_skinnable is SkinnableGeneral)
        {
            if (_skinnable is SkinnableMesh)
            {
                GUILayout.Label("Save Mesh Skin", EditorStyles.boldLabel);
                _saveMesh = EditorGUILayout.Toggle("Save Mesh", _saveMesh);
            }
            else if (_skinnable is SkinnablePrefab)
            {
                GUILayout.Label("Save Prefab Skin", EditorStyles.boldLabel);
                _savePrefab = EditorGUILayout.Toggle("Save Prefab", _savePrefab);
                if (_savePrefab == true)
                {
                    if (EditorApplication.isPlaying)
                    {
                        EditorGUILayout.HelpBox("'Save Prefab' does not works in play mode and will be ignored", MessageType.Warning);
                    }
                    if ((_skinnable as SkinnablePrefab).objectToReplace == null)
                    {
                        EditorGUILayout.HelpBox("There is no prefab assigned to the 'Object To Replace' reference, please assign a prefab", MessageType.Warning);
                    }
                }
            }
            else if (_skinnable is SkinnableParticles)
            {
                GUILayout.Label("Save Particles Skin", EditorStyles.boldLabel);

                _saveParticleColors = EditorGUILayout.Toggle("Save Particles Colors", _saveParticleColors);

                if (_saveParticleColors)
                {
                    GUIStyle gs = new GUIStyle();
                    gs.padding.left = 15;
                    GUILayout.BeginVertical(gs);
                    _saveParticleStartColor    = EditorGUILayout.Toggle("Save Start Color", _saveParticleStartColor);
                    _saveParticleColorOverLife = EditorGUILayout.Toggle("Save Color Over Life", _saveParticleColorOverLife);
                    _saveParticleColorBySpeed  = EditorGUILayout.Toggle("Save Color By Speed", _saveParticleColorBySpeed);
                    GUILayout.EndVertical();
                }
            }
            else
            {
                GUILayout.Label("Save General Skin", EditorStyles.boldLabel);
            }

            _saveMaterials = EditorGUILayout.Toggle("Save Materials Properties", _saveMaterials);
            _saveMatColors = EditorGUILayout.Toggle("Save Material Colors", _saveMatColors);

            if (_saveMatColors)
            {
                ScriptableObject   target           = this;
                SerializedObject   so               = new SerializedObject(target);
                SerializedProperty objectColorsProp = so.FindProperty("saveColors");

                EditorGUILayout.PropertyField(objectColorsProp, true);
                so.ApplyModifiedProperties();
                _skinnable.saveColors = saveColors;
            }
        }
        else if (_skinnable is SkinnableLight)
        {
            GUILayout.Label("Save Light Skin", EditorStyles.boldLabel);

            _saveLightColor     = EditorGUILayout.Toggle("Save Light Color", _saveLightColor);
            _saveLightIntensity = EditorGUILayout.Toggle("Save Light Intensity", _saveLightIntensity);
        }

        GUILayout.Space(10);

        if (GUILayout.Button("Choose Skin Asset"))
        {
            EditorGUIUtility.ShowObjectPicker <SkinConfig>(null, true, "", _pickerFlag);
        }

        if (Event.current.commandName == "ObjectSelectorUpdated")
        {
            _skin = EditorGUIUtility.GetObjectPickerObject() as SkinConfig;
        }

        GUILayout.Space(10);

        EditorGUI.BeginDisabledGroup(_skin == null);
        if (GUILayout.Button("Save"))
        {
            SaveSkinnable(_skin.skinObjects);
            Debug.Log("Skin Object Saved");
        }
        EditorGUI.EndDisabledGroup();
    }
Ejemplo n.º 16
0
        //static List<Control> getControls()
        //{
        //    var controls = tools.GetAllControls(Program.window);
        //    List<Control> list = new List<Control>(){};
        //    string type;
        //    foreach(var c in controls){
        //        type = c.GetType().ToString();
        //        if (type == "AutoPrintr.DocTypeCheckBox") { continue; }
        //        list.Add(c);
        //    }
        //    return list;
        //}

        public static void init()
        {
            // Get all controls
            //var controls = getControls();
            var controls = GetAllControls(Program.window);

            // Creating new skin
            config = new SkinConfig()
            {
                window = new Skin()
                {
                },
                CheckBox = new SkinCheckBox()
                {
                },
                all = new Skin()
                {
                },
                table = new SkinTable()
                {
                    RowHeader = new Skin()
                    {
                    },
                    ColumnHeader = new Skin()
                    {
                    }
                },
                controlsByType = new Dictionary <string, Skin>()
                {
                },
                controls = new List <SkinForControl>()
                {
                }
            };

            string type;

            // Now processing the controls
            foreach (var c in controls)
            {
                type = c.GetType().ToString();
                if (
                    c.Name.Length == 0 |
                    type == "AutoPrintr.DocTypeCheckBox" |
                    type == "System.Windows.Forms.TableLayoutPanel"
                    )
                {
                    continue;
                }

                config.controls.Add(
                    new SkinForControl()
                {
                    ControlName = c.Name,
                    ControlType = c.GetType().ToString(),
                    BackColor   = tools.Color2RGB(c.BackColor),
                    TextColor   = tools.Color2RGB(c.ForeColor),
                    Font        = new skinFont()
                    {
                        Name      = c.Font.Name,
                        Size      = c.Font.Size,
                        Unit      = c.Font.Unit,
                        Bold      = c.Font.Bold,
                        Italic    = c.Font.Italic,
                        Strikeout = c.Font.Strikeout,
                        Underline = c.Font.Underline
                    }
                }
                    );
            }
        }
Ejemplo n.º 17
0
        public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionProperty()
        {
            // arrange
            var containerControl = new Mock<IContainerControl>();
            var exception = new HttpParseException();
            var userControl = new Mock<UserControl>();
            userControl.Stub(c => c.ID);
            var errorControl = userControl.As<IErrorControl>();
            userControl.Object.ID = "Foo.Bar";
            errorControl.Stub(c => c.Exception);
            containerControl.Setup(tc => tc.LoadControl("~/Skins/VsShirts/Controls/ViewPost.ascx")).Throws(exception);
            containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns((UserControl)errorControl.Object);
            var skin = new SkinConfig { TemplateFolder = "VsShirts" };
            var skinControlLoader = new SkinControlLoader(containerControl.Object, skin);

            // act
            var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl;

            // assert
            Assert.AreEqual(exception, control.Exception.InnerException);
        }
Ejemplo n.º 18
0
 public SkinControlLoader(IContainerControl container, SkinConfig skin)
 {
     Container = container;
     Skin = skin;
 }
Ejemplo n.º 19
0
 public SkinControlLoader(IContainerControl container, SkinConfig skin)
 {
     Container = container;
     Skin      = skin;
 }
Ejemplo n.º 20
0
        public void InitializeBlogPage()
        {
            var skin = SkinConfig.GetCurrentSkin(Blog, SubtextContext.HttpContext);
            var skinControlLoader = new SkinControlLoader(this, skin);

            InitializeControls(skinControlLoader);

            if (skin.HasCustomCssText)
            {
                CustomCss.Attributes.Add("href", Url.CustomCssUrl());
            }
            else
            {
                //MAC IE does not like the empy CSS file, plus its a waste :)
                CustomCss.Visible = false;
            }

            if (Rsd != null)
            {
                Rsd.Attributes.Add("href", Url.RsdUrl(Blog).ToString());
            }

            if (wlwmanifest != null)
            {
                wlwmanifest.Attributes.Add("href", Url.WlwManifestUrl());
            }

            if (opensearch != null)
            {
                opensearch.Attributes.Add("href", Url.OpenSearchDescriptorUrl());
                opensearch.Attributes.Add("Title", Blog.Title);
            }

            if (RSSLink != null)
            {
                RSSLink.Attributes.Add("href", Url.RssUrl(Blog).ToString());
            }

            // if specified, add script elements
            if (scripts != null)
            {
                scripts.Text = ScriptRenderer.RenderScriptElementCollection(skin.SkinKey);
            }

            if (styles != null)
            {
                styles.Text = StyleRenderer.RenderStyleElementCollection(skin.SkinKey);
            }

            if (openIDServer != null && !string.IsNullOrEmpty(Blog.OpenIdServer))
            {
                openIDServer.Text = string.Format(OpenIdServerLocation, Blog.OpenIdServer);
            }

            if (openIDDelegate != null && !string.IsNullOrEmpty(Blog.OpenIdDelegate))
            {
                openIDDelegate.Text = string.Format(OpenIdDelegateLocation, Blog.OpenIdDelegate);
            }

            if (metaTags != null)
            {
                metaTags.Blog = Blog;
            }
        }