Ejemplo n.º 1
0
 public void SetMethod(MethodInfo selectMethodInfo)
 {
     this._signatureTextBox.Text = ObjectDataSourceMethodEditor.GetMethodSignature(selectMethodInfo);
     Parameter[] parameters = ObjectDataSourceDesigner.MergeParameters(this._parameterEditorUserControl.GetParameters(), selectMethodInfo);
     this._parameterEditorUserControl.ClearParameters();
     this._parameterEditorUserControl.AddParameters(parameters);
 }
        protected internal override void OnComplete()
        {
            PropertyDescriptor descriptor;
            MethodInfo         deleteMethodInfo = this.DeleteMethodInfo;
            string             str = (deleteMethodInfo == null) ? string.Empty : deleteMethodInfo.Name;

            if (this._objectDataSource.DeleteMethod != str)
            {
                descriptor = TypeDescriptor.GetProperties(this._objectDataSource)["DeleteMethod"];
                descriptor.ResetValue(this._objectDataSource);
                descriptor.SetValue(this._objectDataSource, str);
            }
            deleteMethodInfo = this.InsertMethodInfo;
            str = (deleteMethodInfo == null) ? string.Empty : deleteMethodInfo.Name;
            if (this._objectDataSource.InsertMethod != str)
            {
                descriptor = TypeDescriptor.GetProperties(this._objectDataSource)["InsertMethod"];
                descriptor.ResetValue(this._objectDataSource);
                descriptor.SetValue(this._objectDataSource, str);
            }
            deleteMethodInfo = this.SelectMethodInfo;
            str = (deleteMethodInfo == null) ? string.Empty : deleteMethodInfo.Name;
            if (this._objectDataSource.SelectMethod != str)
            {
                descriptor = TypeDescriptor.GetProperties(this._objectDataSource)["SelectMethod"];
                descriptor.ResetValue(this._objectDataSource);
                descriptor.SetValue(this._objectDataSource, str);
            }
            deleteMethodInfo = this.UpdateMethodInfo;
            str = (deleteMethodInfo == null) ? string.Empty : deleteMethodInfo.Name;
            if (this._objectDataSource.UpdateMethod != str)
            {
                descriptor = TypeDescriptor.GetProperties(this._objectDataSource)["UpdateMethod"];
                descriptor.ResetValue(this._objectDataSource);
                descriptor.SetValue(this._objectDataSource, str);
            }
            this._objectDataSource.SelectParameters.Clear();
            deleteMethodInfo = this.SelectMethodInfo;
            try
            {
                IDataSourceSchema schema = new TypeSchema(deleteMethodInfo.ReturnType);
                if (schema != null)
                {
                    IDataSourceViewSchema[] views = schema.GetViews();
                    if ((views != null) && (views.Length > 0))
                    {
                        views[0].GetFields();
                    }
                }
            }
            catch (Exception)
            {
            }
            ObjectDataSourceDesigner.MergeParameters(this._objectDataSource.DeleteParameters, this.DeleteMethodInfo, this.DeleteMethodDataObjectType);
            ObjectDataSourceDesigner.MergeParameters(this._objectDataSource.InsertParameters, this.InsertMethodInfo, this.InsertMethodDataObjectType);
            ObjectDataSourceDesigner.MergeParameters(this._objectDataSource.UpdateParameters, this.UpdateMethodInfo, this.UpdateMethodDataObjectType);
            string fullName = string.Empty;

            if (this.DeleteMethodDataObjectType != null)
            {
                fullName = this.DeleteMethodDataObjectType.FullName;
            }
            else if (this.InsertMethodDataObjectType != null)
            {
                fullName = this.InsertMethodDataObjectType.FullName;
            }
            else if (this.UpdateMethodDataObjectType != null)
            {
                fullName = this.UpdateMethodDataObjectType.FullName;
            }
            if (this._objectDataSource.DataObjectTypeName != fullName)
            {
                descriptor = TypeDescriptor.GetProperties(this._objectDataSource)["DataObjectTypeName"];
                descriptor.ResetValue(this._objectDataSource);
                descriptor.SetValue(this._objectDataSource, fullName);
            }
            if (deleteMethodInfo != null)
            {
                this._objectDataSourceDesigner.RefreshSchema(deleteMethodInfo.ReflectedType, deleteMethodInfo.Name, deleteMethodInfo.ReturnType, true);
            }
        }