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

// 
// This source code was auto-generated by Web Services Description Language Utility
//Mono Framework v4.0.30319.1
//


/// <remarks/>
[System.Web.Services.WebServiceBinding(Name="BasicHttpBinding_IAccountServicePUN", Namespace="http://tempuri.org/")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AccountService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    private System.Threading.SendOrPostCallback RegisterByEmailOperationCompleted;
    
    public AccountService(string url) {
        this.Url = url;
    }
    
    public event RegisterByEmailCompletedEventHandler RegisterByEmailCompleted;
    
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("ExitGames.Connector.Service/IAccountServicePUN/RegisterByEmail", RequestNamespace="ExitGames.Connector.Service", ResponseNamespace="ExitGames.Connector.Service", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
    [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public Result RegisterByEmail([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string email) {
        object[] results = this.Invoke("RegisterByEmail", new object[] {
                    email});
        return ((Result)(results[0]));
    }
    
    public System.IAsyncResult BeginRegisterByEmail(string email, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("RegisterByEmail", new object[] {
                    email}, callback, asyncState);
    }
    
    public Result EndRegisterByEmail(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((Result)(results[0]));
    }
    
    public void RegisterByEmailAsync(string email) {
        this.RegisterByEmailAsync(email, null);
    }
    
    public void RegisterByEmailAsync(string email, object userState) {
        if ((this.RegisterByEmailOperationCompleted == null)) {
            this.RegisterByEmailOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRegisterByEmailCompleted);
        }
        this.InvokeAsync("RegisterByEmail", new object[] {
                    email}, this.RegisterByEmailOperationCompleted, userState);
    }
    
    private void OnRegisterByEmailCompleted(object arg) {
        if ((this.RegisterByEmailCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.RegisterByEmailCompleted(this, new RegisterByEmailCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="ExitGames.Connector.Service")]
public partial class Result {
    
    private string messageField;
    
    private int returnCodeField;
    
    private bool returnCodeSpecifiedField;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
    public string Message {
        get {
            return this.messageField;
        }
        set {
            this.messageField = value;
        }
    }
    
    /// <remarks/>
    public int ReturnCode {
        get {
            return this.returnCodeField;
        }
        set {
            this.returnCodeField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIgnore()]
    public virtual bool ReturnCodeSpecified {
        get {
            return this.returnCodeSpecifiedField;
        }
        set {
            this.returnCodeSpecifiedField = value;
        }
    }
}

public partial class RegisterByEmailCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal RegisterByEmailCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    public Result Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((Result)(this.results[0]));
        }
    }
}

public delegate void RegisterByEmailCompletedEventHandler(object sender, RegisterByEmailCompletedEventArgs args);
