//------------------------------------------------------------------------------
// <autogenerated>
//     This code was generated by a tool.
//     Runtime Version: 1.1.4322.573
//
//     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 Microsoft.VSDesigner, Version 1.1.4322.573.
// 
namespace Regulator.SDK.Plugins.RegexLib.Services {
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System;
    using System.Web.Services.Protocols;
    using System.ComponentModel;
    using System.Web.Services;
    
    
    /// <remarks/>
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="WebservicesSoap", Namespace="http://regexlib.com/webservices.asmx")]
    public class Webservices : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        /// <remarks/>
        public Webservices() {
            this.Url = "http://www.regexlib.com/webservices.asmx";
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://regexlib.com/webservices.asmx/getRegExpDetails", RequestNamespace="http://regexlib.com/webservices.asmx", ResponseNamespace="http://regexlib.com/webservices.asmx", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RegExpDetails getRegExpDetails(int regexpId) {
            object[] results = this.Invoke("getRegExpDetails", new object[] {
                        regexpId});
            return ((RegExpDetails)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BegingetRegExpDetails(int regexpId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("getRegExpDetails", new object[] {
                        regexpId}, callback, asyncState);
        }
        
        /// <remarks/>
        public RegExpDetails EndgetRegExpDetails(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RegExpDetails)(results[0]));
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://regexlib.com/webservices.asmx/listRegExp", RequestNamespace="http://regexlib.com/webservices.asmx", ResponseNamespace="http://regexlib.com/webservices.asmx", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet listRegExp(string keyword, string regexp_substring, int min_rating, int howmanyrows) {
            object[] results = this.Invoke("listRegExp", new object[] {
                        keyword,
                        regexp_substring,
                        min_rating,
                        howmanyrows});
            return ((System.Data.DataSet)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginlistRegExp(string keyword, string regexp_substring, int min_rating, int howmanyrows, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("listRegExp", new object[] {
                        keyword,
                        regexp_substring,
                        min_rating,
                        howmanyrows}, callback, asyncState);
        }
        
        /// <remarks/>
        public System.Data.DataSet EndlistRegExp(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://regexlib.com/webservices.asmx/Save", RequestNamespace="http://regexlib.com/webservices.asmx", ResponseNamespace="http://regexlib.com/webservices.asmx", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RegexResult Save(PatternInfo patternInfo) {
            object[] results = this.Invoke("Save", new object[] {
                        patternInfo});
            return ((RegexResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSave(PatternInfo patternInfo, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("Save", new object[] {
                        patternInfo}, callback, asyncState);
        }
        
        /// <remarks/>
        public RegexResult EndSave(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RegexResult)(results[0]));
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://regexlib.com/webservices.asmx")]
    public class RegExpDetails {
        
        /// <remarks/>
        public int user_id;
        
        /// <remarks/>
        public int regexp_id;
        
        /// <remarks/>
        public string regular_expression;
        
        /// <remarks/>
        public string matches;
        
        /// <remarks/>
        public string not_matches;
        
        /// <remarks/>
        public string source;
        
        /// <remarks/>
        public string description;
        
        /// <remarks/>
        public System.DateTime create_date;
        
        /// <remarks/>
        public bool disable;
        
        /// <remarks/>
        public int rating;
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://regexlib.com/webservices.asmx")]
    public class RegexResult {
        
        /// <remarks/>
        public PatternInfo PatternInformation;
        
        /// <remarks/>
        public string Message;
        
        /// <remarks/>
        public RegexActionStatus Status;
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://regexlib.com/webservices.asmx")]
    public class PatternInfo {
        
        /// <remarks/>
        public int PatternId;
        
        /// <remarks/>
        public UserInfo UserInfo;
        
        /// <remarks/>
        public int ProviderId;
        
        /// <remarks/>
        public string RegularExpression;
        
        /// <remarks/>
        public string[] Matches;
        
        /// <remarks/>
        public string[] NotMatches;
        
        /// <remarks/>
        public string Source;
        
        /// <remarks/>
        public string Description;
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://regexlib.com/webservices.asmx")]
    public class UserInfo {
        
        /// <remarks/>
        public string Ticket;
        
        /// <remarks/>
        public string Email;
        
        /// <remarks/>
        public string FirstName;
        
        /// <remarks/>
        public string Surname;
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://regexlib.com/webservices.asmx")]
    public enum RegexActionStatus {
        
        /// <remarks/>
        None,
        
        /// <remarks/>
        Inserted,
        
        /// <remarks/>
        Updated,
        
        /// <remarks/>
        Deleted,
        
        /// <remarks/>
        Failed,
    }
}
