예제 #1
0
        public void CheckActualVersion()
        {
            if (bNewVersionWarningShowing)
            {
                return;
            }

            using (PriemEntities context = new PriemEntities())
            {
                string currPath = Application.StartupPath;

                bool bIsDev = false;
                if (currPath.IndexOf(@"\bin\", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    bIsDev = true;
                }

                string actualPath = context.C_AppSettings.Where(x => x.ParamKey == "CurrentDir_Foreigners")
                                    .Select(x => x.ParamValue).FirstOrDefault();

                string sForceAutoOpenCurrentVer = context.C_AppSettings.Where(x => x.ParamKey == "ForceAutoOpenCurrentVer_Foreigners")
                                                  .Select(x => x.ParamValue).FirstOrDefault();
                bool bForceAutoOpenCurrentVer = "1".Equals(sForceAutoOpenCurrentVer, StringComparison.OrdinalIgnoreCase);

                DateTime dtInfo      = new FileInfo(Application.ExecutablePath).LastWriteTime;
                string   versionInfo = string.Format(" (версия от {0})", dtInfo.ToShortDateString() + " " + dtInfo.ToShortTimeString());
                if (!bIsDev && !string.IsNullOrEmpty(actualPath) && !currPath.Equals(actualPath, StringComparison.OrdinalIgnoreCase))
                {
                    if (bForceAutoOpenCurrentVer)
                    {
                        OpenActualVersion(actualPath);
                    }
                    else
                    {
                        string Message = "Вышла новая версия приложения. Запустить актуальную версию?";
                        bNewVersionWarningShowing = true;
                        var dr = MessageBox.Show(Message, "Контроль версий", MessageBoxButtons.YesNo);
                        bNewVersionWarningShowing = false;
                        if (dr == System.Windows.Forms.DialogResult.Yes)
                        {
                            OpenActualVersion(actualPath);
                        }
                        else if (bFirstRun)
                        {
                            OpenHelp(string.Format("{0}; Пользователь: {1}", _titleString + versionInfo, MainClass.GetUserName()));
                        }
                    }
                }
                else
                {
                    if (bFirstRun)
                    {
                        OpenHelp(string.Format("{0}; Пользователь: {1}", _titleString + versionInfo, MainClass.GetUserName()));
                    }
                }
            }
        }