private async Task<LoginEventArgs> Execute(Credentials creds) { LoginEventArgs args = new LoginEventArgs { Type = creds.IsLoggedIn ? LoginEventArgs.TaskType.Logout : LoginEventArgs.TaskType.Login }; if (creds.IsLoggedIn) { var result = await _service.Logout(); args.LogoutResult = result.Context; if (result.Context) { AppSettings.ZumpaUID = null; ClearLogin(creds); } } else { var result = await _service.Login(creds.Login, creds.Password); LoginResult context = result.Context; creds.IsLoggedIn = context.Result; args.LoginResult = context; AppSettings.CookieString = context.Cookies; AppSettings.ZumpaUID = context.UID; if (context.Result) { if (!String.IsNullOrEmpty(AppSettings.PushURI)) { await _service.RegisterPushURI(creds.Login, context.UID, AppSettings.PushURI); } } else { ClearLogin(creds); } } return args; }
public virtual void OnCommandFinished(LoginEventArgs args) { if (CommandFinished != null) { CommandFinished.Invoke(this, args); } }