Esempio n. 1
0
        private void CalculateResults()
        {
            CalculatorServiceClient proxy = null;

            try
            {
                double value1 = Convert.ToDouble(textValue1.Text);
                double value2 = Convert.ToDouble(textValue2.Text);

                Debug.WriteLine("Calculating values");
                string endpointName;
                if (ComboBoxServiceConnection.SelectedIndex == 0)
                    endpointName = "CalculatorService";
                else
                    endpointName = "RouterService";
                proxy = new CalculatorServiceReference.CalculatorServiceClient(endpointName);
                labelAddResult.Text = proxy.Add(value1, value2).ToString();
                labelSubResult.Text = proxy.Subtract(value1, value2).ToString();
                labelMultResult.Text = proxy.Multiply(value1, value2).ToString();
                if (value2 != 0.00)
                    labelDivResult.Text = proxy.Divide(value1, value2).ToString();
                else
                    labelDivResult.Text = "Divide by 0";
            }
            catch (FormatException)
            {
                MessageBox.Show("Invalid numeric value, cannot calculate", "Error", MessageBoxButton.OK, MessageBoxImage.Error);                
            }
            catch (TimeoutException)
            {
                if (proxy != null)
                    proxy.Abort();
                MessageBox.Show("Timeout - cannot connect to service", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            catch (CommunicationException)
            {
                if (proxy != null)
                    proxy.Abort();
                MessageBox.Show("Unable to communicate with the service", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                if (proxy != null)
                    proxy.Close();
            }
        }