private async void Window_Loaded(object sender, RoutedEventArgs e)
      {
          var browser = new EmbeddedBrowser(webBrowser, _clientOptions.RedirectUri);

          _clientOptions.Browser = browser;

          var client = new HelseIdClient(_clientOptions);

          var result = await client.Login();

          if (result.IsError)
          {
              OnLoginError?.Invoke(this, new LoginEventArgs()
                {
                    Response = result
                });
          }
          else
          {
              OnLoginSuccess?.Invoke(this, new LoginEventArgs()
                {
                    Response      = result,
                    AccessToken   = result.AccessToken,
                    IdentityToken = result.IdentityToken,
                    IsError       = result.IsError,
                    Error         = result.Error
                });
          }
      }
Exemple #2
0
        private void RaiseOnResponse(string message)
        {
            var rawMessage = message.Split(':');
            var type       = rawMessage[0];

            if (type.Contains("error"))
            {
                OnLoginError?.Invoke(rawMessage[2]);
                return;
            }

            if (type.Contains("shutdown"))
            {
                OnLoginError?.Invoke(rawMessage[2]);
                return;
            }

            if (type.Contains("login"))
            {
                OnLogin?.Invoke();
                return;
            }

            if (type.Contains("logout"))
            {
                DestroyRunTask();
                OnLogout?.Invoke();
                return;
            }

            if (type.Contains("message"))
            {
                OnMessage?.Invoke(rawMessage[2]);
                return;
            }

            if (type.Contains("members"))
            {
                OnMembers?.Invoke(rawMessage[2]);
                return;
            }
        }
        private void OnLoginHandler(LoginManagerLoginResult result, NSError error)
        {
            if (error != null || result == null || result.IsCancelled)
            {
                if (result != null && result.IsCancelled)
                {
                    OnLoginError?.Invoke(new Exception("Login Canceled."));
                }

                if (error != null)
                {
                    OnLoginError?.Invoke(new Exception(error.LocalizedDescription));
                }
            }
            else
            {
                var request = new GraphRequest("me", new NSDictionary("fields", "id, first_name, email, last_name, picture.width(500).height(500)"));
                request.Start(OnRequestHandler);
            }
        }
 public void Logout()
 {
     OnLoginError?.Invoke(new NotImplementedException());
 }
Exemple #5
0
 public void OnError(FacebookException error)
 {
     OnLoginError?.Invoke(new System.Exception(error.LocalizedMessage));
 }
Exemple #6
0
 public void OnCancel()
 {
     OnLoginError?.Invoke(new System.Exception("Login Canceled."));
 }
        private void OnRequestHandler(GraphRequestConnection connection, NSObject result, NSError error)
        {
            if (error != null || result == null)
            {
                OnLoginError?.Invoke(new Exception(error.LocalizedDescription));
            }
            else
            {
                var id         = string.Empty;
                var first_name = string.Empty;
                var email      = string.Empty;
                var last_name  = string.Empty;
                var url        = string.Empty;

                try
                {
                    id = result.ValueForKey(new NSString("id"))?.ToString();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }

                try
                {
                    first_name = result.ValueForKey(new NSString("first_name"))?.ToString();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }

                try
                {
                    email = result.ValueForKey(new NSString("email"))?.ToString();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }

                try
                {
                    last_name = result.ValueForKey(new NSString("last_name"))?.ToString();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }

                try
                {
                    url = ((result.ValueForKey(new NSString("picture")) as NSDictionary).ValueForKey(new NSString("data")) as NSDictionary).ValueForKey(new NSString("url")).ToString();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }

                //Grab the user and send the success event
                User = new FacebookUser(id, AccessToken.CurrentAccessToken.TokenString, first_name, last_name, email, url);
                OnLoginSuccess?.Invoke(User);
            }
        }