Ejemplo n.º 1
0
        void UpdateNumberText(IAsyncResult ar)
        {
            double result = 0;
            string opcode = (string)ar.AsyncState;

            try
            {
                // Harvest the results
                switch (opcode)
                {
                case "+":
                    result = client.EndAdd(ar);
                    break;

                case "-":
                    result = client.EndSubtract(ar);
                    break;

                case "*":
                    result = client.EndMultiply(ar);
                    break;

                case "/":
                    result = client.EndDivide(ar);
                    break;
                }

                // Show the result
                _numberTextBlock.Text = result.ToString();

                lock (this)
                {
                    // Get the identity
                    if (!identityRetireved)
                    {
                        client.BeginGetIdentity(IdentityCallback, null);
                        identityRetireved = true;
                    }
                }
            }
            catch (UserCancellationException ex)
            {
                _numberTextBlock.Text = "User Cancelation: " + ex.Message;
            }
            catch (UntrustedRecipientException ex)
            {
                _numberTextBlock.Text = "Untrusted Recipient: " + ex.Message;
            }
            catch (ServiceNotStartedException ex)
            {
                _numberTextBlock.Text = "CardSpace Service Not Started: " + ex.Message;
            }
            catch (SecurityNegotiationException ex)
            {
                _numberTextBlock.Text = "Security Negotiation: " + ex.Message;
            }
            catch (IdentityValidationException ex)
            {
                _numberTextBlock.Text = "Identity Validation: " + ex.Message;
            }
            catch (Exception ex)
            {
                _numberTextBlock.Text = "Exception: " + ex.Message;
            }
        }