//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.3082
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
// 


/// <remarks/>
// CODEGEN: The required WSDL extension element 'UsingAddressing' from namespace 'http://www.w3.org/2006/05/addressing/wsdl' was not handled.
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="Geo3DModelServicePortBinding", Namespace="http://ws.geo3dmodel.dino.nitg.tno.nl/")]
public partial class Geo3DModelService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    private System.Threading.SendOrPostCallback sampleColumnOperationCompleted;
    
    private System.Threading.SendOrPostCallback listModelsOperationCompleted;
    
    /// <remarks/>
    public Geo3DModelService() {
        this.Url = "http://www.dinoservices.nl/geo3dmodelwebservices-1/Geo3DModelService";
    }
    
    /// <remarks/>
    public event sampleColumnCompletedEventHandler sampleColumnCompleted;
    
    /// <remarks/>
    public event listModelsCompletedEventHandler listModelsCompleted;
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("sampleColumn", RequestNamespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types", ResponseNamespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("geoColumn")]
    public GeoColumn sampleColumn(string model, double xCoordinate, double yCoordinate, int resolution) {
        object[] results = this.Invoke("sampleColumn", new object[] {
                    model,
                    xCoordinate,
                    yCoordinate,
                    resolution});
        return ((GeoColumn)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginsampleColumn(string model, double xCoordinate, double yCoordinate, int resolution, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("sampleColumn", new object[] {
                    model,
                    xCoordinate,
                    yCoordinate,
                    resolution}, callback, asyncState);
    }
    
    /// <remarks/>
    public GeoColumn EndsampleColumn(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((GeoColumn)(results[0]));
    }
    
    /// <remarks/>
    public void sampleColumnAsync(string model, double xCoordinate, double yCoordinate, int resolution) {
        this.sampleColumnAsync(model, xCoordinate, yCoordinate, resolution, null);
    }
    
    /// <remarks/>
    public void sampleColumnAsync(string model, double xCoordinate, double yCoordinate, int resolution, object userState) {
        if ((this.sampleColumnOperationCompleted == null)) {
            this.sampleColumnOperationCompleted = new System.Threading.SendOrPostCallback(this.OnsampleColumnOperationCompleted);
        }
        this.InvokeAsync("sampleColumn", new object[] {
                    model,
                    xCoordinate,
                    yCoordinate,
                    resolution}, this.sampleColumnOperationCompleted, userState);
    }
    
    private void OnsampleColumnOperationCompleted(object arg) {
        if ((this.sampleColumnCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.sampleColumnCompleted(this, new sampleColumnCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("listModels", RequestNamespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types", ResponseNamespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlArrayAttribute("geo3DModels")]
    [return: System.Xml.Serialization.XmlArrayItemAttribute("geo3DModel", IsNullable=false)]
    public Geo3DModel[] listModels(double xCoordinate, [System.Xml.Serialization.XmlIgnoreAttribute()] bool xCoordinateSpecified, double yCoordinate, [System.Xml.Serialization.XmlIgnoreAttribute()] bool yCoordinateSpecified) {
        object[] results = this.Invoke("listModels", new object[] {
                    xCoordinate,
                    xCoordinateSpecified,
                    yCoordinate,
                    yCoordinateSpecified});
        return ((Geo3DModel[])(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginlistModels(double xCoordinate, bool xCoordinateSpecified, double yCoordinate, bool yCoordinateSpecified, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("listModels", new object[] {
                    xCoordinate,
                    xCoordinateSpecified,
                    yCoordinate,
                    yCoordinateSpecified}, callback, asyncState);
    }
    
    /// <remarks/>
    public Geo3DModel[] EndlistModels(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((Geo3DModel[])(results[0]));
    }
    
    /// <remarks/>
    public void listModelsAsync(double xCoordinate, bool xCoordinateSpecified, double yCoordinate, bool yCoordinateSpecified) {
        this.listModelsAsync(xCoordinate, xCoordinateSpecified, yCoordinate, yCoordinateSpecified, null);
    }
    
    /// <remarks/>
    public void listModelsAsync(double xCoordinate, bool xCoordinateSpecified, double yCoordinate, bool yCoordinateSpecified, object userState) {
        if ((this.listModelsOperationCompleted == null)) {
            this.listModelsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnlistModelsOperationCompleted);
        }
        this.InvokeAsync("listModels", new object[] {
                    xCoordinate,
                    xCoordinateSpecified,
                    yCoordinate,
                    yCoordinateSpecified}, this.listModelsOperationCompleted, userState);
    }
    
    private void OnlistModelsOperationCompleted(object arg) {
        if ((this.listModelsCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.listModelsCompleted(this, new listModelsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    public new void CancelAsync(object userState) {
        base.CancelAsync(userState);
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types")]
public partial class GeoColumn {
    
    private double xCoordinateField;
    
    private double yCoordinateField;
    
    private string coordinateSystemField;
    
    private GeoLayer[] geoLayersField;
    
    /// <remarks/>
    public double xCoordinate {
        get {
            return this.xCoordinateField;
        }
        set {
            this.xCoordinateField = value;
        }
    }
    
    /// <remarks/>
    public double yCoordinate {
        get {
            return this.yCoordinateField;
        }
        set {
            this.yCoordinateField = value;
        }
    }
    
    /// <remarks/>
    public string coordinateSystem {
        get {
            return this.coordinateSystemField;
        }
        set {
            this.coordinateSystemField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlArrayItemAttribute("geoLayer", IsNullable=false)]
    public GeoLayer[] geoLayers {
        get {
            return this.geoLayersField;
        }
        set {
            this.geoLayersField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types")]
public partial class GeoLayer {
    
    private double topField;
    
    private double bottomField;
    
    private string nameField;
    
    private string codeField;
    
    private GeoParameter[] parametersField;
    
    /// <remarks/>
    public double top {
        get {
            return this.topField;
        }
        set {
            this.topField = value;
        }
    }
    
    /// <remarks/>
    public double bottom {
        get {
            return this.bottomField;
        }
        set {
            this.bottomField = value;
        }
    }
    
    /// <remarks/>
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    /// <remarks/>
    public string code {
        get {
            return this.codeField;
        }
        set {
            this.codeField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlArrayItemAttribute("parameter", IsNullable=false)]
    public GeoParameter[] parameters {
        get {
            return this.parametersField;
        }
        set {
            this.parametersField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types")]
public partial class GeoParameter {
    
    private string nameField;
    
    private double valueField;
    
    private string unitField;
    
    private double errorField;
    
    private bool errorFieldSpecified;
    
    private string qualityField;
    
    /// <remarks/>
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    /// <remarks/>
    public double value {
        get {
            return this.valueField;
        }
        set {
            this.valueField = value;
        }
    }
    
    /// <remarks/>
    public string unit {
        get {
            return this.unitField;
        }
        set {
            this.unitField = value;
        }
    }
    
    /// <remarks/>
    public double error {
        get {
            return this.errorField;
        }
        set {
            this.errorField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool errorSpecified {
        get {
            return this.errorFieldSpecified;
        }
        set {
            this.errorFieldSpecified = value;
        }
    }
    
    /// <remarks/>
    public string quality {
        get {
            return this.qualityField;
        }
        set {
            this.qualityField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.geo3dmodel.dino.nitg.tno.nl/types")]
public partial class Geo3DModel {
    
    private string typeField;
    
    private int resolutionField;
    
    /// <remarks/>
    public string type {
        get {
            return this.typeField;
        }
        set {
            this.typeField = value;
        }
    }
    
    /// <remarks/>
    public int resolution {
        get {
            return this.resolutionField;
        }
        set {
            this.resolutionField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void sampleColumnCompletedEventHandler(object sender, sampleColumnCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class sampleColumnCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal sampleColumnCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public GeoColumn Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((GeoColumn)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void listModelsCompletedEventHandler(object sender, listModelsCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class listModelsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal listModelsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public Geo3DModel[] Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((Geo3DModel[])(this.results[0]));
        }
    }
}
