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);
     }
 }