Exemplo n.º 1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            // show splash
            SplashScreenForm splashScreenForm = new SplashScreenForm();

            splashScreenForm.Show();

            Task.Factory.StartNew(() =>
            {
                // empty
                splashScreenForm.SplashScreenText("Инициализация ...");
                System.Threading.Thread.Sleep(500);

                // db connect
                splashScreenForm.SplashScreenText("Соединение с базой данных ...");
                SessionsHelper.DatabaseConnect();

                /*
                 * // login form
                 * splashScreenForm.SplashScreenText("Идентификация пользователя ...");
                 * splashScreenForm.SplashScreenProgress(false);
                 * Application.Current.Dispatcher.Invoke((Action)delegate
                 * {
                 *  LoginFormViewModel loginFormViewModel = new LoginFormViewModel();
                 *  LoginForm loginForm = new LoginForm();
                 *  loginForm.Owner = splashScreenForm;
                 *  loginForm.DataContext = loginFormViewModel;
                 *  loginFormViewModel.OnRequestClose += (s, ee) => loginForm.Close();
                 *  var r = loginForm.ShowDialog();
                 * });
                 */

                SessionsHelper.CurrentUser = SessionsHelper.GetUsersList().First();

                if (SessionsHelper.CurrentUser != null)
                {
                    // empty
                    splashScreenForm.SplashScreenText("Применение параметров ...");
                    splashScreenForm.SplashScreenProgress(true);
                    System.Threading.Thread.Sleep(500);

                    this.Dispatcher.Invoke(() =>
                    {
                        base.OnStartup(e);
                        splashScreenForm.Close();
                    });
                }
                else
                {
                    Process.GetCurrentProcess().Kill();
                }
            });
        }