예제 #1
0
        private void SelectMode_Click(object Sender, RoutedEventArgs E)
        {
            //чтобы пользователь не смог нажать повторно на кнопку, чей обработчик уже исполняется или на любую другую кнопку этой формы
            VM.ButtonsModeIsEnabled = false;

            try
            {
                UserWorkMode userWorkMode = ((UserWorkMode)(Sender as Button).CommandParameter);

                Cache.Net.SetUserWorkMode(userWorkMode);
                switch (userWorkMode)
                {
                case UserWorkMode.Operator:
                case UserWorkMode.OperatorBuildMode:
                    SelectOperatorMode(userWorkMode);
                    break;

                case UserWorkMode.ServiceMan:
                    //если мы были в режиме специальных измерений - надо перечитать содержимое профилей из базы данных чтобы откатить все изменения, сделанные в профилях в режиме специальных имерений
//                        if (Cache.WorkMode == UserWorkMode.SpecialMeasure)
//                            ProfilesDbLogic.ImportProfilesFromDb();

                    //запоминаем выбранный пользователем режим работы
                    Cache.WorkMode = UserWorkMode.ServiceMan;
                    Cache.Main.ServiceManLogin();
                    break;

                case UserWorkMode.SpecialMeasure:
                    if (Settings.Default.IsTechPasswordEnabled)
                    {
                        //без ввода пароля наладчика не будем пускать в режим специальных измерений
                        Cache.Password.AfterOkRoutine += SpecialMeasureCallBack;
                        NavigationService?.Navigate(Cache.Password);
                    }
                    else
                    {
                        SpecialMeasureCallBack(NavigationService);
                    }
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
            catch (Exception ex)
            {
                var dialog = new DialogWindow("Ошибка", ex.ToString());
                dialog.ButtonConfig(DialogWindow.EbConfig.OK);
                dialog.ShowDialog();
            }
            finally
            {
                VM.ButtonsModeIsEnabled = true;
            }
        }
예제 #2
0
        private void SelectOperatorMode(UserWorkMode userWorkMode)
        {
            switch (userWorkMode)
            {
            case UserWorkMode.Operator:
                Cache.Net.SetSafetyMode(Types.SafetyMode.Internal);
                break;

            case UserWorkMode.OperatorBuildMode:
                Cache.Net.SetSafetyMode(Types.SafetyMode.External);
                break;

            default:
                throw new NotImplementedException();
            }
            //если мы были в режиме специальных измерений - надо перечитать содержимое профилей из базы данных чтобы откатить все изменения, сделанные в профилях в режиме специальных имерений
//            if (Cache.WorkMode == UserWorkMode.SpecialMeasure)
//                ProfilesDbLogic.ImportProfilesFromDb();

            //запоминаем выбранный пользователем режим работы
            Cache.WorkMode = UserWorkMode.Operator;

            NavigationService?.Navigate(Cache.Login);
        }
예제 #3
0
 public void SetUserWorkMode(UserWorkMode userWorkMode)
 {
     _IoMain.SetUserWorkMode(userWorkMode);
 }
예제 #4
0
 internal void SetUserWorkMode(UserWorkMode userWorkMode)
 {
     _UserWorkMode = userWorkMode;
 }
예제 #5
0
 public void SetUserWorkMode(UserWorkMode userWorkMode)
 {
     Channel.SetUserWorkMode(userWorkMode);
 }