Esempio n. 1
0
        static void Main(string[] args)
        {
            string defaultSiteUrl  = ConfigurationManager.AppSettings["SharePointSiteUrl"];
            string defaultUserName = ConfigurationManager.AppSettings["UserName"];
            string defaultPassword = ConfigurationManager.AppSettings["Password"];

            //string defaultDomain = ConfigurationManager.AppSettings["Domain"];

            if (args.Length > 0)
            {
                switch (args[0])
                {
                case "deploy-all-stage":
                {
                    var templatePath = (args[1] != null ? args[1].ToString() : "CI.Intranet.Deployment/Templates");
                    var resourcePath = (args[2] != null ? args[2].ToString() : ConfigurationManager.AppSettings["S-ProvisioningResourceFolder"]);

                    defaultSiteUrl  = ConfigurationManager.AppSettings["S-SharePointSiteUrl"];
                    defaultUserName = ConfigurationManager.AppSettings["S-UserName"];
                    defaultPassword = ConfigurationManager.AppSettings["S-Password"];
                    var          searchUrl    = ConfigurationManager.AppSettings["S-SearchSiteUrl"];
                    var          exportFolder = ConfigurationManager.AppSettings["S-ExportTemplateFolder"];
                    SecureString pwd1         = new SecureString();
                    foreach (char c in defaultPassword.ToCharArray())
                    {
                        pwd1.AppendChar(c);
                    }
                    var domain    = string.Empty;
                    var files     = new DirectoryInfo(templatePath);
                    var fileNames = "1-TermSet.xml,2-InformationArchitecture.xml,3-Files.xml".Split(',');
                    var sites     = Properties.Settings.Default.GroupSitesStage;
                    sites.Insert(0, searchUrl);
                    sites.Insert(0, defaultSiteUrl);

                    foreach (var url in sites)
                    {
                        foreach (var file in fileNames)
                        {
                            var rJob = new Jobs.RunProvisioningXml(url, domain, defaultUserName, pwd1);
                            rJob.Start(file, files, "quiet", resourcePath);
                        }
                    }

                    // run search settings
                    var rJobSearch = new Jobs.RunProvisioningXml(searchUrl, domain, defaultUserName, pwd1);
                    rJobSearch.Start("6-Search.xml", files, "quiet", resourcePath);
                    Console.WriteLine("We're done. Press Enter to continue.");
                    Console.ReadLine();
                    return;
                }

                case "deploy-stage":
                {
                    defaultSiteUrl  = ConfigurationManager.AppSettings["S-SharePointSiteUrl"];
                    defaultUserName = ConfigurationManager.AppSettings["S-UserName"];
                    defaultPassword = ConfigurationManager.AppSettings["S-Password"];
                    var          searchUrl      = ConfigurationManager.AppSettings["S-SearchSiteUrl"];
                    var          resourceFolder = ConfigurationManager.AppSettings["S-ProvisioningResourceFolder"];
                    var          exportFolder   = ConfigurationManager.AppSettings["S-ExportTemplateFolder"];
                    SecureString pwd1           = new SecureString();
                    foreach (char c in defaultPassword.ToCharArray())
                    {
                        pwd1.AppendChar(c);
                    }
                    var domain    = string.Empty;
                    var files     = new DirectoryInfo("CI.Intranet.Deployment/Templates");
                    var fileNames = "1-TermSet.xml,2-InformationArchitecture.xml,3-Files.xml".Split(',');
                    var rJob      = new Jobs.RunProvisioningXml(defaultSiteUrl, domain, defaultUserName, pwd1);
                    rJob.Start("3-Files.xml", files, "quiet", resourceFolder);
                    Console.WriteLine("We're done. Press Enter to continue.");
                    Console.ReadLine();
                    return;
                }

                case "deploy-stage-files":
                {
                    defaultSiteUrl  = ConfigurationManager.AppSettings["S-SharePointSiteUrl"];
                    defaultUserName = ConfigurationManager.AppSettings["S-UserName"];
                    defaultPassword = ConfigurationManager.AppSettings["S-Password"];
                    var          searchUrl      = ConfigurationManager.AppSettings["S-SearchSiteUrl"];
                    var          resourceFolder = ConfigurationManager.AppSettings["S-ProvisioningResourceFolder"];
                    var          exportFolder   = ConfigurationManager.AppSettings["S-ExportTemplateFolder"];
                    SecureString pwd1           = new SecureString();
                    foreach (char c in defaultPassword.ToCharArray())
                    {
                        pwd1.AppendChar(c);
                    }
                    var domain    = string.Empty;
                    var files     = new DirectoryInfo("CI.Intranet.Deployment/Templates");
                    var fileNames = "3-Files.xml".Split(',');
                    var rJob      = new Jobs.RunProvisioningXml(defaultSiteUrl, domain, defaultUserName, pwd1);
                    rJob.Start("3-Files.xml", files, "quiet", resourceFolder);
                    Console.WriteLine("We're done. Press Enter to continue.");
                    Console.ReadLine();
                    return;
                }

                case "deploy-all-prod":
                {
                    var templatePath = (args[1] != null ? args[1].ToString() : "CI.Intranet.Deployment/Templates");
                    var resourcePath = (args[2] != null ? args[2].ToString() : ConfigurationManager.AppSettings["P-ProvisioningResourceFolder"]);

                    defaultSiteUrl  = ConfigurationManager.AppSettings["P-SharePointSiteUrl"];
                    defaultUserName = ConfigurationManager.AppSettings["P-UserName"];
                    defaultPassword = ConfigurationManager.AppSettings["P-Password"];
                    var          searchUrl    = ConfigurationManager.AppSettings["P-SearchSiteUrl"];
                    var          exportFolder = ConfigurationManager.AppSettings["P-ExportTemplateFolder"];
                    SecureString pwd1         = new SecureString();
                    foreach (char c in defaultPassword.ToCharArray())
                    {
                        pwd1.AppendChar(c);
                    }
                    var domain    = string.Empty;
                    var files     = new DirectoryInfo(templatePath);
                    var fileNames = "1-TermSet.xml,2-InformationArchitecture.xml,3-Files.xml".Split(',');
                    var sites     = Properties.Settings.Default.GroupSites;
                    sites.Insert(0, searchUrl);
                    sites.Insert(0, defaultSiteUrl);

                    foreach (var url in sites)
                    {
                        Console.WriteLine(url);
                        foreach (var file in fileNames)
                        {
                            var rJob = new Jobs.RunProvisioningXml(url, domain, defaultUserName, pwd1);
                            rJob.Start(file, files, "quiet", resourcePath);
                        }
                    }

                    // run search settings
                    var rJobSearch = new Jobs.RunProvisioningXml(searchUrl, domain, defaultUserName, pwd1);
                    rJobSearch.Start("6-Search.xml", files, "quiet", resourcePath);

                    Console.WriteLine("We're done. Press Enter to continue.");
                    Console.ReadLine();

                    return;
                }
                }
            }

            Console.WriteLine("Default Site Url: " + defaultSiteUrl);
            //Console.WriteLine("Default Domain: " + defaultDomain);
            Console.WriteLine("Default Username: "******"Default Password: (in config file)");

            // Collect information
            string siteUrl = GetInput("Enter the URL of the SharePoint site (enter to use default)", false, defaultForeground);
            //string domain = GetInput("Enter your domain (enter to use default)", false, defaultForeground);
            string userName = GetInput("Enter your user name (enter to use default)", false, defaultForeground);
            string pwdS     = GetInput("Enter your password (enter to use default)", true, defaultForeground);

            if (string.IsNullOrEmpty(siteUrl))
            {
                siteUrl = defaultSiteUrl;
            }

            /*
             * if (string.IsNullOrEmpty(domain))
             *  domain = defaultDomain;
             */
            if (string.IsNullOrEmpty(userName))
            {
                userName = defaultUserName;
            }


            if (string.IsNullOrEmpty(pwdS))
            {
                pwdS = defaultPassword;
            }

            SecureString pwd = new SecureString();

            foreach (char c in pwdS.ToCharArray())
            {
                pwd.AppendChar(c);
            }


            ClientContext ctx;

            ctx = new OfficeDevPnP.Core.AuthenticationManager().GetSharePointOnlineAuthenticatedContextTenant(siteUrl, userName, pwdS);

            // Test connection by outputing the site title
            Web web = ctx.Web;

            ctx.Load(web, w => w.Title);
            ctx.Load(web, w => w.Url);
            ctx.ExecuteQueryRetry();

            Console.WriteLine("Site Title: {0}", web.Title);
            Console.WriteLine("Site URL: {0}", web.Url);

            DisplayJobRunOptions(siteUrl, "", userName, pwd, "");

            // Pause and modify the UI to indicate that the operation is complete
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("We're done. Press Enter to continue.");
            Console.ReadLine();
        }