private static DataBaseService.PingDbState TryToReachDBAtStartSession()
        {
            // Запуск первый? -------------------------------------------------------------------
            if (AppServiceStartAction.isAppFistRun)
            {
                // Да первый
                // Выставляем что первый был
                AppServiceStartAction.isAppFistRun = false;

                // Просто возвращаем результат Аппликейшена
                return(AppServiceStartAction.state);
            }

            // Не первый запуск. ----------------------------------------------------------------

            // пингуем базу, что там сейчас с ней?
            var sessionStartDbRes = DataBaseService.CheckDbStates();

            if (sessionStartDbRes == DataBaseService.PingDbState.NoError)
            {
                // Все ок, база сейчас работает. а приложение было запушено?
                if (AppServiceStartAction.state != DataBaseService.PingDbState.NoError)
                {
                    // Вызываем повторный старт приложения.
                    ApplicationService.RunDbDependAppStartServices();

                    // Обновляем статус в приложении, что все хорошо, больше запускаться не нужно
                    AppServiceStartAction.state = DataBaseService.PingDbState.NoError;
                }
            }

            // Возвращаем состояние старта на сессии
            return(sessionStartDbRes);
        }
Beispiel #2
0
        /// <summary>
        /// CheckDbStates Check all db states
        /// </summary>
        /// <returns></returns>
        public static PingDbState CheckDbStates()
        {
            if (!DataBaseService.PingDateBase())
            {
                return(PingDbState.FailConnectionSqlDb);
            }

            if (!DataBaseService.CheckDBStructure())
            {
                return(PingDbState.WrongDbStructure);
            }

            if (!DataBaseService.CheckDBVersion())
            {
                return(PingDbState.WrongDbVersion);
            }

            return(PingDbState.NoError);
        }