/// <summary> Загрузка списка площадок </summary>
        public void LoadListModelServerArea()
        {
            List <ModelServerArea> listModelServerArea;

            var enumResultLogin = DataSourceLogin.GetListModelServerArea(out listModelServerArea);

            if (enumResultLogin == EnumResultLogin.No)
            {
                ListModelServerArea = listModelServerArea;

                OnPropertyChanged("ListModelServerArea");

                var modelServerArea = listModelServerArea.FirstOrDefault(obj => obj.Id == CurrentModelLogin.ServerAreaCode);

                if (modelServerArea != null)
                {
                    CurrentModelLogin.ModelServerAreaObj = modelServerArea;
                }
                else
                {
                    var modelServerAreaDefault = listModelServerArea.FirstOrDefault(obj => obj.Id == 0);

                    CurrentModelLogin.ModelServerAreaObj = modelServerAreaDefault ?? ModelServerArea.GetDefaultModelServerArea();
                }
            }
        }
        /// <summary> Конструктор </summary>
        public ViewModelUserAuthorization()
        {
            CurrentModelLogin = DataSourceLogin.GetLastModelLogin();

            if (CurrentModelLogin.ServerAreaCode > 0)
            {
                LoadListModelServerArea();
            }

            CurrentModelLogin.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName.Equals("ModelLanguageObj", StringComparison.InvariantCultureIgnoreCase))
                {
                    DataSourceLogin.SaveModelLanguage(CurrentModelLogin.ModelLanguageObj);
                }
            };

            _backgroundWorker.DoWork += BackgroundWorkerOnDoWork;

            _backgroundWorker.RunWorkerCompleted += BackgroundWorkerOnRunWorkerCompleted;

            CommandLogin          = new Command(obj => Login());
            CommandForgotPassword = new Command(obj => ForgotPassword());
            CommandSignUp         = new Command(obj => SignUp());

            CallbackRouter.Instance.ModelConnectStateChanged += OnModelConnectStateChanged;
        }
        /// <summary> Сохранить ключ шифрования в локальном хранилище </summary>
        public bool LocalSavePublicKey()
        {
            var modelLogin = DataSourceLogin.GetLastModelLogin();
            var login      = modelLogin.Login;
            var serverArea = modelLogin.ServerAreaCode;
            var secretKey  = DataSourceSecurity.GetUserSecretKey();
            var saveResult = UtilitySecurity.SavePrivateCryptKeyToIsolatedStorage(secretKey, login, serverArea.ToString());

            return(saveResult);
        }
Пример #4
0
        /// <summary> Обработчик генерации секретного ключа внутри логики C++ </summary>
        private void LogicSecretKeyGeneratedHandler()
        {
            var modelLogin = DataSourceLogin.GetLastModelLogin();
            var login      = modelLogin.Login;
            var serverArea = modelLogin.ServerAreaCode;

            var secretKey = DataSourceSecurity.GetUserSecretKey();

            OnSecretKeyGenerated(login, serverArea, secretKey);
        }
Пример #5
0
        /// <summary> Выйти из приложения </summary>
        public void ApplicationExit()
        {
            DataSourceLogin.Logout();

            App.Mutex.ReleaseMutex();
            App.Mutex.Dispose();

            NotifyIcon.Visible = false;

            Environment.Exit(0);
        }
 ///<summary> Метод выполнения потока BackgroundWorker </summary>
 private void BackgroundWorkerOnDoWork(object sender, DoWorkEventArgs e)
 {
     e.Result = DataSourceLogin.Login(CurrentModelLogin);
 }