Пример #1
0
        public void InstallProject(DownloadSession parentDownloadSession, string directory, string projectName, string projectVersion, uint?deployMode, string solutionName = null, string solutionVersion = null)
        {
            if (String.Equals(projectVersion, Constants.LatestVersionString))
            {
                projectVersion = GetLatestProjectRelease(projectName);
            }

            DownloadSession downloadSession = parentDownloadSession != null ? parentDownloadSession : new DownloadSession(String.Format("Installing project {0} (version {1})", projectName, projectVersion));

            downloadSession.ResetRegisteredFiles();

            ProjectRelease projectRelease = downloadSession.GetProjectRelease(projectName, projectVersion, this.LeagueCDNBaseURL);

            if (deployMode != null)
            {
                projectRelease.EnumerateFiles().ForEach(x => x.DeployMode = (ReleaseManifestFile.DeployMode)deployMode);
            }

            using (ProjectReleaseInstallation installation = new ProjectReleaseInstallation(projectRelease, directory, solutionName, solutionVersion))
            {
                foreach (ReleaseManifestFileEntry file in projectRelease.EnumerateFiles())
                {
                    RemoteAsset remoteAsset = projectRelease.GetRemoteAsset(file);
                    downloadSession.RegisterFile(remoteAsset, installation.GetFileInstaller(remoteAsset));
                }
                downloadSession.DoWork();

                if (parentDownloadSession == null)
                {
                    downloadSession.Dispose();
                }
            }
        }
Пример #2
0
        public void InstallProject(string directory, string projectName, string projectVersion, uint?deployMode, string solutionName = null, string solutionVersion = null)
        {
            if (String.Equals(projectVersion, Constants.LatestVersionString))
            {
                projectVersion = GetLatestProjectRelease(projectName);
            }

            Console.WriteLine("Downloading manifest for project {0}, release {1}...", projectName, projectVersion);
            ProjectRelease projectRelease = new ProjectRelease(projectName, projectVersion, this.LeagueCDNBaseURL);

            using (ProjectReleaseInstallation installation = new ProjectReleaseInstallation(projectRelease, directory, solutionName, solutionVersion))
            {
                foreach (ReleaseManifestFileEntry file in projectRelease.EnumerateFiles())
                {
                    RemoteAsset remoteAsset = projectRelease.GetRemoteAsset(file);
                    Console.Write("■ Downloading {0}/{1}", remoteAsset.StringVersion, remoteAsset.FileFullPath);
                    try
                    {
                        installation.InstallFile(remoteAsset);
                        Console.SetCursorPosition(0, Console.CursorTop);
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("■");
                    }
                    catch (Exception)
                    {
                        Console.SetCursorPosition(0, Console.CursorTop);
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("■");
                    }
                    Console.ResetColor();
                }
            }
        }