private void cmbURL_SelectedIndexChanged(object sender, EventArgs e)
 {
     _wsdlHandler = new WSDLHandler(new Uri(EvaluateExpression(cmbURL.Text.Trim(), _taskHost.VariableDispenser).ToString()));
     cmbServices.Items.Clear();
     cmbMethods.Items.Clear();
     grdParameters.Rows.Clear();
     cmbServices.Items.AddRange(_wsdlHandler.AvailableServices.ToArray());
 }
 private void btGO_Click(object sender, EventArgs e)
 {
     _wsdlHandler = new WSDLHandler(new Uri(EvaluateExpression(cmbURL.Text.Trim(), _taskHost.VariableDispenser).ToString()));
 }
        public frmEditProperties(TaskHost taskHost, Connections connections)
        {
            InitializeComponent();

            grdParameters.DataError += grdParameters_DataError;

            _taskHost = taskHost;

            try
            {
                Cursor = Cursors.WaitCursor;

                cmbServices.Items.Clear();
                cmbMethods.Items.Clear();
                grdParameters.Rows.Clear();

                //Get URL's Service
                cmbURL.Items.AddRange(LoadVariables("System.String").ToArray());
                if (_taskHost.Properties[NamedStringMembers.SERVICE_URL].GetValue(_taskHost) != null)
                {
                    if (!string.IsNullOrEmpty(_taskHost.Properties[NamedStringMembers.SERVICE_URL].GetValue(_taskHost).ToString()))
                    {
                        cmbURL.SelectedIndexChanged      -= cmbURL_SelectedIndexChanged;
                        cmbServices.SelectedIndexChanged -= cmbServices_SelectedIndexChanged;
                        cmbMethods.SelectedIndexChanged  -= cmbMethods_SelectedIndexChanged;


                        _wsdlHandler = new WSDLHandler(new Uri(EvaluateExpression(_taskHost.Properties[NamedStringMembers.SERVICE_URL].GetValue(_taskHost).ToString(),
                                                                                  _taskHost.VariableDispenser).ToString()));

                        cmbURL.Text = _taskHost.Properties[NamedStringMembers.SERVICE_URL].GetValue(_taskHost).ToString();

                        //Get Services
                        cmbServices.Items.AddRange(_wsdlHandler.AvailableServices.ToArray());
                        cmbServices.SelectedIndex = FindStringInComboBox(cmbServices, _taskHost.Properties[NamedStringMembers.SERVICE].GetValue(_taskHost).ToString(), -1);

                        //Get Methods by service
                        cmbMethods.Items.AddRange(_wsdlHandler.GetServiceMethods(_taskHost.Properties[NamedStringMembers.SERVICE].GetValue(_taskHost).ToString()).ToArray());
                        cmbMethods.SelectedIndex = FindStringInComboBox(cmbMethods, _taskHost.Properties[NamedStringMembers.WEBMETHOD].GetValue(_taskHost).ToString(), -1);

                        var webServiceMethod = from m in _wsdlHandler.WebServiceMethods
                                               where m.Name == _taskHost.Properties[NamedStringMembers.WEBMETHOD].GetValue(_taskHost).ToString()
                                               select new WebServiceMethod
                        {
                            Name       = m.Name,
                            ResultType = m.ResultType
                        };

                        //Get returned variables
                        if (_taskHost.Properties[NamedStringMembers.RETURNED_VALUE] != null)
                        {
                            if (!string.IsNullOrEmpty(_taskHost.Properties[NamedStringMembers.RETURNED_VALUE].GetValue(_taskHost).ToString()))
                            {
                                cmbReturnVariable.Items.AddRange(LoadVariables((webServiceMethod.FirstOrDefault()).ResultType).ToArray());
                                cmbReturnVariable.SelectedIndex = FindStringInComboBox(cmbReturnVariable, _taskHost.Properties[NamedStringMembers.RETURNED_VALUE].GetValue(_taskHost).ToString(), -1);
                            }
                        }

                        FillGridWithParams(_taskHost.Properties[NamedStringMembers.MAPPING_PARAMS].GetValue(_taskHost) as MappingParams);

                        cmbURL.SelectedIndexChanged      += cmbURL_SelectedIndexChanged;
                        cmbServices.SelectedIndexChanged += cmbServices_SelectedIndexChanged;
                        cmbMethods.SelectedIndexChanged  += cmbMethods_SelectedIndexChanged;
                    }
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
            finally
            {
                Cursor = Cursors.Arrow;
            }
        }