Пример #1
0
        /// <summary>
        /// Runs the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="keyValues">The key values.</param>
        /// <param name="output">The output.</param>
        /// <returns></returns>
        public override int Execute(string command, StringDictionary keyValues, out string output)
        {
            output = string.Empty;



            string name                = Params["name"].Value;
            long   storagemaxlevel     = 0;
            long   storagewarninglevel = 0;

            try
            {
                if (Params["storagemaxlevel"].UserTypedIn)
                {
                    storagemaxlevel = long.Parse(Params["storagemaxlevel"].Value) * 1024 * 1024; // Convert to bytes
                }
                if (Params["storagewarninglevel"].UserTypedIn)
                {
                    storagewarninglevel = long.Parse(Params["storagewarninglevel"].Value) * 1024 * 1024;
                }
            }
            catch
            {
                throw new SPException("Please specify levels in terms of whole numbers between 0 and " + (long.MaxValue / 1024) / 1024 + ".");
            }
            SPFarm       farm       = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue <SPWebService>("");

            SPQuotaTemplateCollection quotaColl = webService.QuotaTemplates;

            if (quotaColl[name] == null)
            {
                output = "The template specified does not exist.";
                return((int)ErrorCodes.GeneralError);
            }
            SPQuotaTemplate newTemplate = new SPQuotaTemplate();

            newTemplate.Name = name;
            if (Params["storagemaxlevel"].UserTypedIn)
            {
                newTemplate.StorageMaximumLevel = storagemaxlevel;
            }
            else
            {
                newTemplate.StorageMaximumLevel = quotaColl[name].StorageMaximumLevel;
            }

            if (Params["storagewarninglevel"].UserTypedIn)
            {
                newTemplate.StorageWarningLevel = storagewarninglevel;
            }
            else
            {
                newTemplate.StorageWarningLevel = quotaColl[name].StorageWarningLevel;
            }

            quotaColl[name] = newTemplate;

            return((int)ErrorCodes.NoError);
        }
Пример #2
0
        private static void DeleteQuotaTemplate(string name)
        {
            SPFarm farm = SPFarm.Local;

            SPWebService webService             = farm.Services.GetValue <SPWebService>("");
            SPQuotaTemplateCollection quotaColl = webService.QuotaTemplates;

            quotaColl.Delete(name);
        }
Пример #3
0
        protected override void UpdateDataObject()
        {
            ShouldProcessReason reason;

            if (!base.ShouldProcess("Set Quotas", null, null, out reason))
            {
                if (reason == ShouldProcessReason.WhatIf)
                {
                    m_whatIf = true;
                }
            }

            SPFarm       farm       = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue <SPWebService>("");

            m_quotaColl = webService.QuotaTemplates;
            m_setQuota  = !SyncExistingOnly.IsPresent;


            if (QuotaTemplate != null)
            {
                m_quota = QuotaTemplate.Read();
                if (m_quota == null)
                {
                    throw new SPCmdletException("The specified quota template name could not be found.");
                }
            }

            SPEnumerator enumerator = null;

            switch (ParameterSetName)
            {
            case "SPSite1":
            case "SPSite2":
                Sync(Site.Read());
                return;

            case "SPWebApplication1":
            case "SPWebApplication2":
                enumerator = new SPEnumerator(WebApplication.Read());
                break;

            default:
                enumerator = new SPEnumerator(Farm.Read());
                break;
            }

            enumerator.SPSiteEnumerated += enumerator_SPSiteEnumerated;
            enumerator.Enumerate();
        }
        private static SPSite CreateSite(SPWebApplication webApp, SPSiteSubscription siteSubscription, string webTemplate, string title, string description, string ownerName, string ownerEmail, string quota, string secondaryContactName, string secondaryContactEmail, bool useHostHeaderAsSiteName, uint nLCID, Uri uri, string ownerLogin, string secondaryContactLogin, SPContentDatabase database)
        {
            if (database != null && database.MaximumSiteCount <= database.CurrentSiteCount)
            {
                throw new SPException("The maximum site count for the specified database has been exceeded.  Increase the maximum site count or specify another database.");
            }

            Logger.Write("PROGRESS: Creating site collection...");
            SPSite site = null;

            if (database != null)
            {
                site = database.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                                          ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                                          useHostHeaderAsSiteName);
            }
            else
            {
                site = webApp.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                                        ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                                        useHostHeaderAsSiteName);
            }
            Logger.Write("PROGRESS: Site collection successfully created.");

            if (!string.IsNullOrEmpty(quota))
            {
                Logger.Write("PROGRESS: Associating quota template with site collection...");
                using (SPSiteAdministration administration = new SPSiteAdministration(site.Url))
                {
                    SPFarm       farm       = SPFarm.Local;
                    SPWebService webService = farm.Services.GetValue <SPWebService>("");

                    SPQuotaTemplateCollection quotaColl = webService.QuotaTemplates;
                    administration.Quota = quotaColl[quota];
                }
            }
            if (!string.IsNullOrEmpty(webTemplate))
            {
                Logger.Write("PROGRESS: Creating default security groups...");
                using (SPWeb web = site.RootWeb)
                {
                    web.CreateDefaultAssociatedGroups(ownerLogin, secondaryContactLogin, string.Empty);
                }
            }

            return(site);
        }
        /// <summary>
        /// Executes the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="keyValues">The key values.</param>
        /// <param name="output">The output.</param>
        /// <returns></returns>
        public override int Execute(string command, StringDictionary keyValues, out string output)
        {
            output         = string.Empty;
            Logger.Verbose = true;

            string scope = Params["scope"].Value.ToLowerInvariant();

            SPFarm       farm       = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue <SPWebService>("");

            m_quotaColl = webService.QuotaTemplates;
            m_setQuota  = Params["setquota"].UserTypedIn;

            if (Params["quota"].UserTypedIn)
            {
                m_quota = m_quotaColl[Params["quota"].Value];
                if (m_quota == null)
                {
                    throw new ArgumentException("The specified quota template name could not be found.");
                }
            }

            SPEnumerator enumerator;

            if (scope == "farm")
            {
                enumerator = new SPEnumerator(SPFarm.Local);
            }
            else if (scope == "webapplication")
            {
                enumerator = new SPEnumerator(SPWebApplication.Lookup(new Uri(Params["url"].Value.TrimEnd('/'))));
            }
            else
            {
                // scope == "site"
                using (SPSite site = new SPSite(Params["url"].Value.TrimEnd('/')))
                {
                    Sync(site);
                }
                return((int)ErrorCodes.NoError);
            }

            enumerator.SPSiteEnumerated += enumerator_SPSiteEnumerated;
            enumerator.Enumerate();

            return((int)ErrorCodes.NoError);
        }
        /// <summary>
        /// Executes the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="keyValues">The key values.</param>
        /// <param name="output">The output.</param>
        /// <returns></returns>
        public override int Execute(string command, StringDictionary keyValues, out string output)
        {
            output = string.Empty;
            Logger.Verbose = true;

            string scope = Params["scope"].Value.ToLowerInvariant();

            SPFarm farm = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue<SPWebService>("");

            m_quotaColl = webService.QuotaTemplates;
            m_setQuota = Params["setquota"].UserTypedIn;

            if (Params["quota"].UserTypedIn)
            {
                m_quota = m_quotaColl[Params["quota"].Value];
                if (m_quota == null)
                    throw new ArgumentException("The specified quota template name could not be found.");
            }

            SPEnumerator enumerator;
            if (scope == "farm")
            {
                enumerator = new SPEnumerator(SPFarm.Local);
            }
            else if (scope == "webapplication")
            {
                enumerator = new SPEnumerator(SPWebApplication.Lookup(new Uri(Params["url"].Value.TrimEnd('/'))));
            }
            else
            {
                // scope == "site"
                using (SPSite site = new SPSite(Params["url"].Value.TrimEnd('/')))
                {
                    Sync(site);
                }
                return (int)ErrorCodes.NoError;
            }

            enumerator.SPSiteEnumerated += enumerator_SPSiteEnumerated;
            enumerator.Enumerate();

            return (int)ErrorCodes.NoError;
        }