static void HandleAuthenticationResponseArrived(object sender, AuthenticationResponseEventArgs e)
        {
            Debug.WriteLine("response from passive view arrived");
            if (e.Success)
            {
                if (dummyPassiveAuthenticationTask.Status == TaskStatus.RanToCompletion)
                {
                    dummyPassiveAuthenticationTask = new Task(() => Console.WriteLine("success passive auth"));
                }

                var rawToken     = e.TokenInfo ["access_token"];
                var refreshToken = e.TokenInfo ["refresh_token"];

                currentApplication.setPassiveIdentity(rawToken, refreshToken);

                dummyPassiveAuthenticationTask.Start();
            }
            else
            {
                Debug.WriteLine(e.ErrorMessage);
                if (dummyPassiveFailTask.Status == TaskStatus.RanToCompletion)
                {
                    dummyPassiveFailTask = new Task(() => { throw new Exception(authErrorMessage); });
                }

                authErrorMessage = e.ErrorMessage;
                dummyPassiveFailTask.Start();
            }
        }
 protected virtual void OnAuthenticationResponseArrived(AuthenticationResponseEventArgs e)
 {
     if (AuthenticationResponseArrived != null)
     {
         AuthenticationResponseArrived(this, e);
     }
 }