Example #1
0
 private void _processLogin(EBioLogin bioLoginExcp, Action<EBioException> callback) {
   if(bioLoginExcp is EBioLoggedOut) {
     this.CurUsr = null;
     if (callback != null) callback(bioLoginExcp);
   } else {
     // Запрашиваем ввод логина
     this._getLogin(newLogin => {
       if (newLogin == null) {
         // Если пользователь не ввел логин, тогда отбой
         if (callback != null) callback(new EBioCancel());
       } else {
         // Пользователь ввел логин
         var curUsrName = Utl.ExtractUsrNameFromLogin(newLogin);
         var curUsrPwd = Utl.ExtractUsrPwdFromLogin(newLogin);
         // Запускаем процедуру проверки логина 
         _postLogin(newLogin, r => {
           EBioException excp = DecBioLoginExcp(r.Ex);
           if (excp != null) {
             var bioOk = excp as EBioOk;
             if (bioOk != null) {
               this.AssignCurUser(bioOk.Usr);
               BioEnvironment.Instance.ConfigRoot.LastLoggedInUserName = curUsrName;
               BioEnvironment.Instance.LastSuccessPwd = curUsrPwd;
               if (BioEnvironment.Instance.ConfigRoot.SavePassword)
                 BioEnvironment.Instance.ConfigRoot.LastLoggedInUserPwd = curUsrPwd;
               else
                 BioEnvironment.Instance.ConfigRoot.LastLoggedInUserPwd = String.Empty;
               BioEnvironment.Instance.PluginRoot.Cfg.Store();
               if (callback != null) callback(bioOk);
             } else if (excp is EBioAutenticationError) {
               String errMsg = null;
               if (excp is EBioBadUser)
                 errMsg = "Не верное имя пользователя [" + curUsrName + "] или пароль.";
               else if (excp is EBioUncnfrmdUser)
                 errMsg = "Пользователь [" + curUsrName + "] не активирован.";
               else if (excp is EBioBlockedUser)
                 errMsg = "Пользователь [" + curUsrName + "] заблокирован.";
               else if (excp is EBioBadPwd)
                 errMsg = "Не верный пароль.";
               _showLoginError(errMsg, () => {
                 this._processLogin(bioLoginExcp, callback);
               });
             } else {
               excp = new EBioException("Непредвиденная ошибка: " + r.Ex.Message);
               if (callback != null) callback(excp);
             }
           } else {
             excp = EBioException.CreateIfNotEBio(r.Ex);
             if (callback != null) callback(excp);
           }
             
         });
       }
     });
   }
 }
Example #2
0
 public void ProcessLogin(EBioLogin bioLoginExcp, BioRequest request, Action<EBioException, BioRequest> callback) {
   if (bioLoginExcp != null) {
     this._processLogin(bioLoginExcp, e => {
       if (callback != null) callback(e, request);
     });
   }
 }