Beispiel #1
0
 public void processLogin(EBioLogin bioLoginExcp, BioRequest request, Action<EBioException, BioRequest> callback) {
   if (bioLoginExcp != null) {
     this._processLogin(bioLoginExcp, (EBioException e) => {
       if (callback != null) callback(e, request);
     });
   }
 }
Beispiel #2
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 {
         // Пользователь ввел логин
         String vCurUsrName = Utl.ExtractUsrNameFromLogin(newLogin);
         String vCurUsrPwd = Utl.ExtractUsrPwdFromLogin(newLogin);
         // Запускаем процедуру проверки логина 
         postLogin(newLogin, (r) => {
           EBioException vExcp = decBioLoginExcp(r.Ex);
           if (vExcp != null) {
             if (vExcp is EBioOk) {
               this.assignCurUser(((EBioOk)vExcp).Usr);
               this.FOwner.Env.ConfigRoot.LastLoggedInUserName = vCurUsrName;
               this.FOwner.Env.LastSuccessPwd = vCurUsrPwd;
               if (this.FOwner.Env.ConfigRoot.SavePassword)
                 this.FOwner.Env.ConfigRoot.LastLoggedInUserPwd = vCurUsrPwd;
               else
                 this.FOwner.Env.ConfigRoot.LastLoggedInUserPwd = String.Empty;
               ((IConfigurable<ConfigRoot>)this.FOwner.Env.PluginRoot).Cfg.Store();
               if (callback != null) callback(vExcp);
             } else if (vExcp is EBioAutenticationError) {
               String v_errMsg = null;
               if (vExcp is EBioBadUser)
                 v_errMsg = "Не верное имя пользователя [" + vCurUsrName + "] или пароль.";
               else if (vExcp is EBioUncnfrmdUser)
                 v_errMsg = "Пользователь [" + vCurUsrName + "] не активирован.";
               else if (vExcp is EBioBlockedUser)
                 v_errMsg = "Пользователь [" + vCurUsrName + "] заблокирован.";
               else if (vExcp is EBioBadPwd)
                 v_errMsg = "Не верный пароль.";
               this.showLoginError(v_errMsg, () => {
                 this._processLogin(bioLoginExcp, callback);
               });
             } else {
               vExcp = new EBioException("Непредвиденная ошибка: " + r.Ex.Message);
               if (callback != null) callback(vExcp);
             }
           } else {
             vExcp = EBioException.CreateIfNotEBio(r.Ex);
             if (callback != null) callback(vExcp);
           }
             
         });
       }
     });
   }
 }