예제 #1
0
        protected SPAlternateUrl GetCurrentAlternateUrl(SPWebApplication webApp, AlternateUrlDefinition definition)
        {
            var alternateUrls = webApp.AlternateUrls;

            var url     = definition.Url;
            var urlZone = (SPUrlZone)Enum.Parse(typeof(SPUrlZone), definition.UrlZone);

            return(alternateUrls.GetResponseUrl(urlZone));
        }
예제 #2
0
        private void DeployDefinition(object modelHost, SPWebApplication webApp, AlternateUrlDefinition definition)
        {
            var alternateUrls = webApp.AlternateUrls;

            var url     = definition.Url;
            var urlZone = (SPUrlZone)Enum.Parse(typeof(SPUrlZone), definition.UrlZone);

            var responseUrl = GetCurrentAlternateUrl(webApp, definition);

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

            if (!string.IsNullOrEmpty(url))
            {
                responseUrl = new SPAlternateUrl(url, urlZone);
                alternateUrls.SetResponseUrl(responseUrl);
            }
            else
            {
                alternateUrls.UnsetResponseUrl(urlZone);
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = responseUrl,
                ObjectType       = typeof(SPAlternateUrl),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            alternateUrls.Update();
        }
        //[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)]
        public void CanDeploySimpleAlternateUrlDefinition()
        {
            var internalDef = new AlternateUrlDefinition
            {
                Url     = "http://the-portal",
                UrlZone = BuiltInUrlZone.Intranet
            };

            var intranetDef = new AlternateUrlDefinition
            {
                Url     = "http://my-intranet.com.au",
                UrlZone = BuiltInUrlZone.Internet
            };

            var model = SPMeta2Model.NewWebApplicationModel(webApp =>
            {
                webApp.AddAlternateUrl(internalDef);
                webApp.AddAlternateUrl(intranetDef);
            });

            DeployModel(model);
        }
예제 #4
0
 public static TModelNode AddAlternateUrl <TModelNode>(this TModelNode model, AlternateUrlDefinition definition,
                                                       Action <AlternateUrlModelNode> action)
     where TModelNode : ModelNode, IWebApplicationModelNode, new()
 {
     return(model.AddTypedDefinitionNode(definition, action));
 }
예제 #5
0
 public static TModelNode AddAlternateUrl <TModelNode>(this TModelNode model, AlternateUrlDefinition definition)
     where TModelNode : ModelNode, IWebApplicationModelNode, new()
 {
     return(AddAlternateUrl(model, definition, null));
 }
 public static ModelNode AddAlternateUrl(this ModelNode model, AlternateUrlDefinition definition, Action <ModelNode> action)
 {
     return(model.AddDefinitionNode(definition, action));
 }
 public static ModelNode AddAlternateUrl(this ModelNode model, AlternateUrlDefinition definition)
 {
     return(AddAlternateUrl(model, definition, null));
 }