示例#1
0
        protected virtual int HandleInstallCommand(string[] args, DefaultOptions options)
        {
            var op = options.Install;

            ConfigureServices(op);

            if (!CmdParser.ParseArguments(args, op))
            {
                return(1);
            }

            var sources = new List <string>();

            if (!string.IsNullOrEmpty(op.Source))
            {
                sources.Add(op.Source);
            }

            sources.AddRange(DefaultValues.DefaultNuGetRepositories);

            var command = new DefaultInstallCommand
            {
                PackageSources = sources,
                Url            = op.Url,
                Id             = op.Id,
                Version        = op.Version,
                PreRelease     = op.PreRelease,
                UserName       = op.UserName,
                UserPassword   = op.UserPassword,

                SharePointVersion = op.SharePointVersion,
                SharePointEdition = op.SharePointEdition,
                SharePointApi     = op.SharePointApi,

                ToolId      = op.ToolId,
                ToolVersion = op.ToolVersion,

                Force = op.Force
            };

            if (string.IsNullOrEmpty(op.SharePointVersion))
            {
                command.SharePointVersion = SharePointRuntimVersions.O365;
            }

            command.Execute();

            return(0);
        }
        internal void DeployNuGetPackageInternal(SharePointConnection connection, IPackage package, bool force)
        {
            var appDataServices = ShServiceContainer.Instance.GetAppDataService <MetaPackDataService>();

            var command = new DefaultInstallCommand();

            command.Url = connection.Url;

            if (connection.AuthMode.Id == SharePointConnectionAuthMode.SharePointOnline.Id)
            {
                command.SharePointVersion = "o365";
                command.SharePointApi     = "csom";

                command.UserName     = connection.UserName;
                command.UserPassword = connection.UserPassword;
            }
            else if (connection.AuthMode.Id == SharePointConnectionAuthMode.WindowsAuthentication.Id)
            {
                command.SharePointVersion = "sp2013";
                command.SharePointApi     = "csom";

                if (!string.IsNullOrEmpty(connection.UserName) &&
                    !string.IsNullOrEmpty(connection.UserPassword))
                {
                    command.UserName     = connection.UserName;
                    command.UserPassword = connection.UserPassword;
                }
            }

            command.PackageSources = appDataServices.NuGetConnections.Select(s => s.Url).ToList();
            command.Id             = package.Id;
            command.Version        = package.Version.ToString();
            command.PreRelease     = package.IsReleaseVersion();

            command.Force = force;

            command.Execute();
        }
示例#3
0
        private void Can_Call_Install_Command_O365_Internal(string webSiteUrl, bool isForce)
        {
            var hasOnTraceEvents = false;

            var expectedInstallHits = 0;
            var actualInstallHits   = 0;

            WithMetaPackServices(service =>
            {
                expectedInstallHits++;

                var packagingService = service.PackagingService;
                var solutionPackage  = CreateNewSolutionPackage(packagingService);

                UpdatePackageVersion(solutionPackage);

                PushPackageToCIRepository(solutionPackage, null, packagingService);

                var userName     = EnvironmentUtils.GetEnvironmentVariable(RegConsts.O365.UserName);
                var userPassword = EnvironmentUtils.GetEnvironmentVariable(RegConsts.O365.UserPassword);

                var packageVersion = solutionPackage.Version;
                var packageId      = solutionPackage.Id;

                WithCINuGetContext((apiUrl, apiKey, repoUrl) =>
                {
                    var command = new DefaultInstallCommand
                    {
                        Url = webSiteUrl,

                        Id      = packageId,
                        Version = packageVersion,

                        UserName     = userName,
                        UserPassword = userPassword,

                        SharePointVersion = "o365",

                        PreRelease = true
                    };

                    command.OnTraceEvent += (s, e) =>
                    {
                        hasOnTraceEvents = true;
                        Trace.WriteLine(e.Message);
                    };

                    command.PackageSources.Add(repoUrl);

                    if (UseLocaNuGet)
                    {
                        command.PackageSources.Add(LocalNuGetRepositoryFolderPath);
                    }

                    command.Execute();
                    actualInstallHits++;

                    if (isForce)
                    {
                        expectedInstallHits++;

                        command.Force = true;
                        command.Execute();

                        actualInstallHits++;
                    }
                });
            });

            Assert.AreEqual(expectedInstallHits, actualInstallHits);
            Assert.IsTrue(hasOnTraceEvents);
        }