private void DeployArtifact(FarmModelHost modelHost, SPFarm farm, DeveloperDashboardSettingsDefinition ddsDefinition)
        {
            var currentSettings = GetCurrentSettings();

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentSettings,
                ObjectType       = typeof(SPDeveloperDashboardSettings),
                ObjectDefinition = ddsDefinition,
                ModelHost        = modelHost
            });

            if (!string.IsNullOrEmpty(ddsDefinition.DisplayLevel))
            {
                var displayLevel = (SPDeveloperDashboardLevel)Enum.Parse(typeof(SPDeveloperDashboardLevel), ddsDefinition.DisplayLevel);
                currentSettings.DisplayLevel = displayLevel;
                currentSettings.Update();
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = currentSettings,
                ObjectType       = typeof(SPDeveloperDashboardSettings),
                ObjectDefinition = ddsDefinition,
                ModelHost        = modelHost
            });
        }
        private void ValidateDefinition(FarmModelHost farmModelHost,
                                        SPFarm farm,
                                        DeveloperDashboardSettingsDefinition definition)
        {
            var spObject = GetCurrentSettings();
            var assert   = ServiceFactory.AssertService.NewAssert(definition, spObject);

            assert
            .ShouldNotBeNull(spObject);

            if (!string.IsNullOrEmpty(definition.DisplayLevel))
            {
                assert.ShouldBeEqual((p, s, d) =>
                {
                    var srcProp = s.GetExpressionValue(def => def.DisplayLevel);
                    var dstProp = d.GetExpressionValue(ct => ct.DisplayLevel);

                    return(new PropertyValidationResult
                    {
                        Tag = p.Tag,
                        Src = srcProp,
                        Dst = dstProp,
                        IsValid = dstProp.Value.ToString().ToUpper() == (srcProp.Value.ToString().ToUpper())
                    });
                });
            }
            else
            {
                assert.SkipProperty(m => m.DisplayLevel);
            }
        }
 public static TModelNode AddDeveloperDashboardSettings <TModelNode>(this TModelNode model, DeveloperDashboardSettingsDefinition definition,
                                                                     Action <DeveloperDashboardSettingsModelNode> action)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
 public static TModelNode AddDeveloperDashboardSettings <TModelNode>(this TModelNode model, DeveloperDashboardSettingsDefinition definition)
     where TModelNode : ModelNode, IFarmModelNode, new()
 {
     return(AddDeveloperDashboardSettings(model, definition, null));
 }