public static IPropertyBagHierarchy GetHierarchy(SPWeb web)
        {
            IPropertyBagHierarchy hierarchyStack = null;

            if (SharePointEnvironment.InSandbox)
            {
                if (web == null && SharePointEnvironment.CanAccessFarmConfig)
                {
                    return(new SandboxFarmPropertyBagHierarchy());
                }

                Validation.ArgumentNotNull(web, "web");

                if (SharePointEnvironment.CanAccessFarmConfig)
                {
                    hierarchyStack = new SandboxWithProxyPropertyBagHierarchy(web);
                }
                else
                {
                    hierarchyStack = new SandboxPropertyBagHierarchy(web);
                }
            }
            else
            {
                if (web != null)
                {
                    hierarchyStack = new FullTrustPropertyBagHierarchy(web);
                }
                else
                {
                    hierarchyStack = GetFarmHierarchy();
                }
            }
            return(hierarchyStack);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="HierarchicalConfig"/> class.
 /// </summary>
 /// <param name="hierarchy">instance of <see cref="IPropertyBagHierarchy"/>.</param>
 /// <param name="configSettingSerializer">The config setting serializer.</param>
 public HierarchicalConfig(IPropertyBagHierarchy hierarchy, IConfigSettingSerializer configSettingSerializer)
 {
     Validation.ArgumentNotNull(configSettingSerializer, "configSettingSerializer");
     Validation.ArgumentNotNull(hierarchy, "hierarchy");
     this.configSettingSerializer = configSettingSerializer;
     this.propBagHierarchy        = hierarchy;
 }
Example #3
0
        public void GetHierarchy_GetsHierarchyForSandbox()
        {
            //Arrange
            var context = new MockAppContextProvider();

            context.IsProxyInstalledRetValue = false;
            context.SetSandbox();
            SharePointEnvironment.ApplicationContextProvider = context;
            BSPSite site = new BSPSite();
            var     web  = site.SetRootWeb();

            web.ServerRelativeUrl = "foo/bar";
            BSPList list = web.Lists.SetOne();

            list.Title = ConfigurationList.ConfigListName;
            web.ID     = TestsConstants.TestGuid;
            site.ID    = new Guid("{7C039254-10B7-49F0-AA8D-F592206C7130}");
            var moleWeb = new Microsoft.SharePoint.Moles.MSPWeb(web);

            moleWeb.GetListString = (listUrl) =>
            {
                if (listUrl == "foo/bar/Lists/" + ConfigurationList.ConfigListName)
                {
                    return(list);
                }
                return(null);
            };

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(web);

            //Assert
            Assert.IsInstanceOfType(target, typeof(SandboxPropertyBagHierarchy));
        }
Example #4
0
 protected virtual IPropertyBagHierarchy GetHierarchy()
 {
     if (hierarchy == null)
     {
         hierarchy = HierarchyBuilder.GetHierarchy(this.WebContext);
     }
     return(hierarchy);
 }
Example #5
0
        public void GetHierarchy_GetsHierarchyForFarm()
        {
            //Arrange
            var f = new BSPConfiguredFarm();

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(null);

            //Assert
            Assert.IsInstanceOfType(target, typeof(FarmPropertyBagHierarchy));
        }
Example #6
0
        public void GetHierarchy_GetsHierarchyForSandboxFarm()
        {
            //Arrange
            var context = new MockAppContextProvider();

            context.AddProxyType(ProxyArgs.ReadConfigArgs.OperationTypeName);
            context.AddProxyType(ProxyArgs.ProxyInstalledArgs.OperationTypeName);
            context.SetSandbox();
            SharePointEnvironment.ApplicationContextProvider = context;

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(null);

            //Assert
            Assert.IsInstanceOfType(target, typeof(SandboxFarmPropertyBagHierarchy));
        }
Example #7
0
        public void GetHierarchy_GetsHierarchyForFullTrust()
        {
            //Arrange
            var site   = new BSPSite();
            var web    = site.SetRootWeb();
            var webApp = new BSPWebApplication();

            site.WebApplication = webApp;
            var f = new BSPConfiguredFarm();

            webApp.Farm = SPFarm.Local;

            //Act
            IPropertyBagHierarchy target = HierarchyBuilder.GetHierarchy(web);

            //Assert
            Assert.IsInstanceOfType(target, typeof(FullTrustPropertyBagHierarchy));
        }
        protected bool ContainsFrom(string key, ConfigLevel level)
        {
            Validation.ArgumentNotNull(key, "key");
            bool contains = false;
            IPropertyBagHierarchy hierarchy = GetHierarchy();

            foreach (IPropertyBag bag in hierarchy.PropertyBags)
            {
                //property bags are ordered by level in the hierarchy
                if (bag.Level >= level)
                {
                    contains = bag.Contains(key);
                    if (contains)
                    {
                        break;
                    }
                }
            }

            return(contains);
        }
        protected string GetSettingFrom(string key, ConfigLevel level)
        {
            Validation.ArgumentNotNull(key, "key");

            string value = null;
            IPropertyBagHierarchy hierarchy = GetHierarchy();

            foreach (IPropertyBag bag in hierarchy.PropertyBags)
            {
                //property bags are ordered by level in the hierarchy
                if (bag.Level >= level)
                {
                    value = bag[key];
                    if (value != null)
                    {
                        break;
                    }
                }
            }

            return(value);
        }
Example #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigManager"/> class.
 /// </summary>
 /// <param name="hierarchy">instance of <see cref="IPropertyBagHierarchy"/>.</param>
 /// <param name="configSettingSerializer">The config setting serializer.</param>
 public ConfigManager(IPropertyBagHierarchy hierarchy, IConfigSettingSerializer configSettingSerializer)
 {
     Validation.ArgumentNotNull(configSettingSerializer, "configSettingSerializer");
     this.configSettingSerializer = configSettingSerializer;
     this.hierarchy = hierarchy;
 }
Example #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigManager"/> class.
 /// </summary>
 /// <param name="hierarchy">instance of <see cref="IPropertyBagHierarchy"/>.</param>
 public ConfigManager(IPropertyBagHierarchy hierarchy)
 {
     Validation.ArgumentNotNull(hierarchy, "hierarchy");
     this.hierarchy = hierarchy;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HierarchicalConfig"/> class.
 /// </summary>
 /// <param name="hierarchy">instance of <see cref="IPropertyBagHierarchy"/>.</param>
 public HierarchicalConfig(IPropertyBagHierarchy hierarchy)
 {
     Validation.ArgumentNotNull(hierarchy, "hierarchy");
     this.propBagHierarchy = hierarchy;
 }