Ejemplo n.º 1
0
        public static void Process(string newConnection, Guid jobID)
        {
            Guid newJobID = jobID;

            // Get server from internal cache
            // ------------------------------
            Sql.RegisteredServer rServer = Program.gController.Repository.GetServer(newConnection);

            if (rServer == null)
            {
                Program.gController.Repository.RefreshRegisteredServers();
                rServer = Program.gController.Repository.GetServer(newConnection);
            }

            if (rServer != null)
            {
                int snapshotID = rServer.GetLatestSnapshotId();

                Form           mainForm = null;
                FormCollection fc       = Application.OpenForms;
                foreach (Form f in fc)
                {
                    if (f.Name == "MainForm")
                    {
                        mainForm = f;
                        break;
                    }
                }

                Form_StartSnapshotJobAndShowProgress form = new Forms.Form_StartSnapshotJobAndShowProgress(mainForm, rServer, snapshotID);
                Guid realJobID;
                if (rServer.StartJob(out realJobID))
                {
                    rServer.SetJobId(realJobID);
                    form.m_jobID = realJobID;
                    form.m_rServer.SetStartSnapshotForm(form);
                    form.timer_Status.Start();
                    form.Show(mainForm);
                }
                else
                {
                    form.Close();
                }
            }
        }