Exemple #1
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            string title = this.Text + "( 版本 : " + MainForm.Version.ToString() + ")";

            this.Text = title;

            ManifestResolver resolver = new ManifestResolver(Program.UpdateURL, VersionOption.Stable);

            _updateHelper = new UpdateHelper(resolver, new InstallDescriptor(Application.StartupPath));

            System.Threading.Timer timer = new System.Threading.Timer(timer_Tick, null, new TimeSpan(0), new TimeSpan(1, 0, 0));

            LoginGreening();

            XmlHelper xml = MainForm.Storage.GetPropertyXml(toolStrip1.Name, "Location");

            if (xml != null)
            {
                int x = xml.TryGetInteger("X", 0);
                int y = xml.TryGetInteger("Y", 0);
                toolStrip1.Location = new Point(x, y);
            }

            MainForm.Projects.ProjectRemoved += new EventHandler(Projects_ProjectRemoved);
            MainForm.Projects.ProjectAdded   += new EventHandler <ProjectEventArgs>(Projects_ProjectAdded);

            CheckCLIInstall();
        }
        private void CheckVersionForm_Load(object sender, EventArgs e)
        {
            Version          serverVer = new Version(1, 0, 0, 0);
            ManifestResolver r         = new ManifestResolver(Program.UpdateURL, VersionOption.Stable);

            try
            {
                r.Resolve();
                serverVer = r.ReleaseManifest.Version;
            }
            catch
            {
            }

            lblLastest.Text = "最新版本 : " + serverVer;

            Version localVersion = new Version("1.0.0.0");

            try
            {
                ReleaseManifest rm = new ReleaseManifest();
                rm.Load(Path.Combine(Application.StartupPath, "release.xml"));
                localVersion = rm.Version;
            }
            catch
            {
                localVersion = MainForm.Version;
            }
            lblCurrent.Text = "目前版本 : " + localVersion.ToString();
        }
        private void CheckVersionForm_Load(object sender, EventArgs e)
        {
            Version serverVer = new Version(1, 0, 0, 0);
            ManifestResolver r = new ManifestResolver(Program.UpdateURL, VersionOption.Stable);
            try
            {
                r.Resolve();
                serverVer = r.ReleaseManifest.Version;
            }
            catch
            {
            }

            lblLastest.Text = "最新版本 : " + serverVer;

            Version localVersion = new Version("1.0.0.0");
            try
            {
                ReleaseManifest rm = new ReleaseManifest();
                rm.Load(Path.Combine(Application.StartupPath, "release.xml"));
                localVersion = rm.Version;
            }
            catch
            {
                localVersion = MainForm.Version;
            }
            lblCurrent.Text = "目前版本 : " + localVersion.ToString();
        }
Exemple #4
0
        public PackService(IPackageSerializer packageSerializer, ManifestResolver manifestResolver, IWriter writer)
        {
            Guard.NotNull(packageSerializer, nameof(packageSerializer));
            Guard.NotNull(manifestResolver, nameof(manifestResolver));
            Guard.NotNull(writer, nameof(writer));

            _packageSerializer = packageSerializer;
            _manifestResolver  = manifestResolver;
            _writer            = writer;
        }
Exemple #5
0
        /// 需要在某個時機呼叫這個,一般來說是在 MainForm Load 的事件中。
        /// </summary>
        internal static void Update()
        {
            string basePath = System.Windows.Forms.Application.StartupPath;
            //更新位置。
            string appUrl = "http://module.ischool.com.tw/module/89/MOD_ischedule/app.xml";

            if (System.IO.File.Exists(Path.Combine(System.Windows.Forms.Application.StartupPath, "測試版本")))
                appUrl = "http://10.1.1.167/modules/FiscaAEModules/MOD_ischedule/app.xml";

            string script_path = Path.Combine(basePath, "update_padding.xml");
            ManifestResolver resolver = new ManifestResolver(appUrl, VersionOption.Stable);
            resolver.VerifySignature = true;

            UpdateHelper uc = new UpdateHelper();
            uc.Resolver = resolver;
            uc.Install = new InstallDescriptor(basePath);

            //更新過程的訊息。
            resolver.ProgressMessage += new EventHandler<ProgressMessageEventArgs>(au_ProgressMessage);

            uc.DownloadStarted += new EventHandler(au_DownloadStarted);
            uc.DownloadProgressChanged += new EventHandler<DownloadProgressEventHandler>(au_DownloadProgressChanged);
            uc.DownloadCompleted += new EventHandler(au_DownloadCompleted);
            uc.ProgressMessage += new EventHandler<ProgressMessageEventArgs>(au_ProgressMessage);

            //MainForm.SetBarMessage("檢查更新…");
            ThreadPool.QueueUserWorkItem(arg =>
            {
                resolver.Resolve();

                if (uc.CheckUpdate())
                {
                    PaddingScript script = new PaddingScript();
                    script.WaitRelease(System.Reflection.Assembly.GetExecutingAssembly().Location);

                    uc.Update(script);

                    script.Delete(uc.Install.TemporalFolder);
                    script.Delete(script_path);
                    script.DeleteEmpty(basePath);
                    script.StartProcess(System.Reflection.Assembly.GetExecutingAssembly().Location);

                    script.Save(script_path);

                    MessageBox.Show("系統自動更新完成,將重新啟動。");

                    Application.Restart();
                }
                else
                {
                    //MessageBox.Show("已經是最新版。");
                }
            });
        }
Exemple #6
0
        public ResolveService(IPackageSerializer packageSerializer, ManifestResolver manifestResolver, RepositoryFactory repositoryFactory, DependencyResolver dependencyResolver,
                              PackageInstallerFactory packageInstallerFactory, IWriter writer)
        {
            Guard.NotNull(packageSerializer, nameof(packageSerializer));
            Guard.NotNull(manifestResolver, nameof(manifestResolver));
            Guard.NotNull(repositoryFactory, nameof(repositoryFactory));
            Guard.NotNull(dependencyResolver, nameof(dependencyResolver));
            Guard.NotNull(packageInstallerFactory, nameof(packageInstallerFactory));
            Guard.NotNull(writer, nameof(writer));

            _packageSerializer       = packageSerializer;
            _manifestResolver        = manifestResolver;
            _repositoryFactory       = repositoryFactory;
            _dependencyResolver      = dependencyResolver;
            _packageInstallerFactory = packageInstallerFactory;
            _writer = writer;
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            string title = this.Text + "( 版本 : " + MainForm.Version.ToString() + ")";
            this.Text = title;

            ManifestResolver resolver = new ManifestResolver(Program.UpdateURL, VersionOption.Stable);
            _updateHelper = new UpdateHelper(resolver, new InstallDescriptor(Application.StartupPath));

            System.Threading.Timer timer = new System.Threading.Timer(timer_Tick, null, new TimeSpan(0), new TimeSpan(1, 0, 0));

            LoginGreening();

            XmlHelper xml = MainForm.Storage.GetPropertyXml(toolStrip1.Name, "Location");
            if (xml != null)
            {
                int x = xml.TryGetInteger("X", 0);
                int y = xml.TryGetInteger("Y", 0);
                toolStrip1.Location = new Point(x, y);
            }

            MainForm.Projects.ProjectRemoved += new EventHandler(Projects_ProjectRemoved);
            MainForm.Projects.ProjectAdded += new EventHandler<ProjectEventArgs>(Projects_ProjectAdded);
        }
Exemple #8
0
        async Task <int> Handle(IConsole console, string cluster, string path)
        {
            var client = JetfireClientFactory.CreateClient(secrets, cluster);

            var absolutePath = Path.GetFullPath(path);

            var manifests =
                Directory.EnumerateFiles(absolutePath, "*.*", SearchOption.AllDirectories)
                .Where(path => manifestFileExtensions.Any(ext => path.EndsWith(ext)))
                .SelectMany(path =>
            {
                var yaml      = File.ReadAllText(path);
                var manifests = parser.ParseManifests(yaml);
                return(manifests.Select(manifest => (path, manifest)));
            })
                .ToList();

            var duplicateExternalIds =
                manifests
                .GroupBy(x => x.manifest.ExternalId)
                .Where(group => group.Count() > 1);

            if (duplicateExternalIds.Any())
            {
                console.Error.WriteLine($"Error: Manifests contain duplicate externalIds:");
                foreach (var group in duplicateExternalIds)
                {
                    console.Error.WriteLine($"ExternalId '{group.Key}' is defined in the following files:");
                    foreach (var(duplicatedPath, duplicatedTransform) in group)
                    {
                        var relativeDuplicatedPath = Path.GetRelativePath(duplicatedPath, absolutePath);
                        console.Error.WriteLine($"- '{relativeDuplicatedPath}' (name: {duplicatedTransform.Name})");
                    }
                    console.Error.WriteLine("");
                }

                return(1);
            }

            var resolver = new ManifestResolver(secrets);

            var resolveResults = manifests.Select(t => resolver.Resolve(t.manifest, t.path));
            var errorResults   = resolveResults.Where(x => x.IsError).ToArray();

            if (errorResults.Any())
            {
                console.Error.WriteLine("Error: Found invalid transformation manifests:");
                console.Error.WriteLine();
                foreach (var result in errorResults)
                {
                    var formattedExternalId = result.ResolvedManifest?.Transformation?.ExternalId ?? "null";
                    console.Error.WriteLine($"In '{result.ManifestPath}' (externalId: {formattedExternalId}):");

                    foreach (var error in result.Errors)
                    {
                        console.Error.WriteLine($"    - {error}");
                    }

                    console.Error.WriteLine();
                }

                return(1);
            }

            var existingTransforms = await client.TransformConfigList();

            var deployment = new Deployment(console, client, existingTransforms);

            foreach (var result in resolveResults)
            {
                var externalId = result.ResolvedManifest.Transformation.ExternalId;
                try
                {
                    await deployment.Deploy(result.ResolvedManifest);
                }
                catch (Exception e)
                {
                    console.Error.WriteLine($"Failed to deploy transformation '{externalId}':");
                    console.Error.WriteLine(e.ToString());
                    console.Error.WriteLine();
                    return(1);
                }
            }

            return(0);
        }