예제 #1
0
        private void InitCheckVersion()
        {
            try
            {
                Thread.Sleep(2000);
                CheckVersion = false;
                WebReference.WebSDataBrCode BrServer = new WebReference.WebSDataBrCode();
                BrServer.SoapVersion   = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
                BrServer.BrHeaderValue = CBrHeader.GetHeader();
                BrServer.Credentials   = new NetworkCredential(CBrHeader.Login, CBrHeader.Password);
                BrServer.Url           = set.AdressAppServer;
                Double CStableVer = BrServer.GET_ACTUAL_VERSION_CLIENT();
                Double ClientVer  = Double.Parse(CBrHeader.ClientVersion.Replace('.', ','));

                if (ClientVer < CStableVer)
                {//Необходимо обновить ПО
                    if (MessageBox.Show("Необходимо обновить ПО, запустить обновление?", "Обновление", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) == DialogResult.OK)
                    {
                        ProcessStartInfo processStartInfo = new ProcessStartInfo();
                        processStartInfo.FileName         = @"DataBrCode\DataBrUpdater.exe";
                        processStartInfo.WorkingDirectory = @"DataBrCode\";
                        processStartInfo.Arguments        = "/AutoUpdate";

                        try
                        {
                            Process.Start(processStartInfo);
                            try
                            {//Выключаем потом обновления локальной БД
                                UpdateLocalBdBool = false;
                                UpdateLocalBd.Abort();
                            }
                            catch { }

                            if (!set.Emulator)
                            {
                                DisposeScaner();
                            }

                            BufferToBD.StopReadBuffer();
                            Application.Exit();
                        }
                        catch (Exception f)
                        {
                            MessageBox.Show(f.ToString());
                        }
                    }
                }
                else if (ClientVer == CStableVer)
                {
                    labelBD.BeginInvoke(new Action(() =>
                    {
                        labelBD.Text = "Актуальная версия";
                    }));
                    Thread.Sleep(5000);
                }
                else
                {
                    labelBD.BeginInvoke(new Action(() =>
                    {
                        labelBD.Text      = "Используется версия для разработчиков";
                        labelBD.ForeColor = Color.Yellow;
                    }));
                    Thread.Sleep(5000);
                }

                CheckVersion = true;
            }

            catch (Exception) { }
            timerUpdateRelise.Enabled = true;
        }