using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.ServiceModel;
using Syspro.Base.SoapClient.SysproQueryServiceReference;
using Syspro.Base.SoapClient.SysproSetupServiceReference;
using Syspro.Base.SoapClient.SysproUtilitiesServiceReference;
using Syspro.Base.SoapClient.SysproTransactionServiceReference;
namespace Syspro.Base.SoapClient
{
[Guid("2672CDBD-F7C9-41E9-A86E-BD7034285E2E")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ISoapClient
{
[DispId(1)] // TODO: Are these Dispatch ID's necessary? If not, remove them.
void SetBaseURL(string URL);
// Utility routines
[DispId(2)]
string Logon(string Operator, string OperatorPassword, string CompanyId, string CompanyPassword);
[DispId(3)]
string Logoff(string userId);
[DispId(4)]
string GetLogonProfile(string UserId);
[DispId(5)]
string Run(string UserId, string BusinessObject, string Parameter);
// Transaction routines
[DispId(6)]
string Post(string UserId, string BusinessObject, string XmlParameters, string XmlIn);
[DispId(7)]
string Build(string UserId, string BusinessObject, string XmlIn);
// Query routines
[DispId(8)]
string Query(string UserId, string BusinessObject, string XmlIn);
[DispId(9)]
string Browse(string UserId, string XmlIn);
[DispId(10)]
string Fetch(string UserId, string XmlIn);
[DispId(11)]
string NextKey(string UserId, string XmlIn);
[DispId(12)]
string PreviousKey(string UserId, string XmlIn);
// Setup routines
[DispId(13)]
string Add(string UserId, string BusinessObject, string XmlParameters, string XmlIn);
[DispId(14)]
string Delete(string UserId, string BusinessObject, string XmlParameters, string XmlIn);
[DispId(15)]
string Update(string UserId, string BusinessObject, string XmlParameters, string XmlIn);
}
// Reference: http://msdn.microsoft.com/en-us/library/bb608604.aspx
[Guid("7D825322-30C9-42A4-9A74-57154FC3169F")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Syspro.Base.SoapClient")]
public class SoapClient : ISoapClient
{
private string BaseURL = String.Empty;
private const string utilitiesEndpointName = "/utilities.asmx";
private const string transactionEndpointName = "/transaction.asmx";
private const string queryEndpointName = "/query.asmx";
private const string setupEndpointName = "/setup.asmx";
public SoapClient()
{
// Must have a public default constructor so that COM clients can create the type.
// Reference: http://msdn.microsoft.com/en-us/library/7fcfby2t.aspx
}
public void SetBaseURL(string URL)
{
BaseURL = URL;
}
#region Utility Routines
public string Logon(string Operator, string OperatorPassword, string CompanyId, string CompanyPassword)
{
System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding();
var endPoint = new EndpointAddress(BaseURL + utilitiesEndpointName);
var client = new utilitiesclassSoapClient(binding, endPoint);
var result = client.Logon(Operator, OperatorPassword, CompanyId,
CompanyPassword, Language.AUTO,
LogDetail.ldNoDebug, Instance.EncoreInstance_0, "");
return result;
}
public string Logoff(string userId)
{
System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding();
var endPoint = new EndpointAddress(BaseURL + utilitiesEndpointName);
var client = new utilitiesclassSoapClient(binding, endPoint);
var result = client.Logoff(userId);
return result;
}
public string GetLogonProfile(string userId)
{
System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding();
var endPoint = new EndpointAddress(BaseURL + utilitiesEndpointName);
var client = new utilitiesclassSoapClient(binding, endPoint);
var result = client.GetLogonProfile(userId);
return result;
}
public string Run(string UserId, string BusinessObject, string Parameter)
{
System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding();
var endPoint = new EndpointAddress(BaseURL + utilitiesEndpointName);
var client = new utilitiesclassSoapClient(binding, endPoint);
var result = client.Run(UserId, BusinessObject, Parameter);
return result;
}
#endregion Utilities Routines
#region Transaction Routines
public string Post(string UserId, string BusinessObject, string XmlParameters, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + transactionEndpointName);
var client = new transactionclassSoapClient(binding, endPoint);
var result = client.Post(UserId, BusinessObject, XmlParameters, XmlIn);
return result;
}
public string Build(string UserId, string BusinessObject, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + transactionEndpointName);
var client = new transactionclassSoapClient(binding, endPoint);
var result = client.Build(UserId, BusinessObject, XmlIn);
return result;
}
#endregion Transaction Routines
#region Query Routines
public string Query(string UserId, string BusinessObject, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + queryEndpointName);
var client = new queryclassSoapClient(binding, endPoint);
var result = client.Query(UserId, BusinessObject, XmlIn);
return result;
}
public string Browse(string UserId, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + queryEndpointName);
var client = new queryclassSoapClient(binding, endPoint);
var result = client.Browse(UserId, XmlIn);
return result;
}
public string Fetch(string UserId, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + queryEndpointName);
var client = new queryclassSoapClient(binding, endPoint);
var result = client.Fetch(UserId, XmlIn);
return result;
}
public string NextKey(string UserId, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + queryEndpointName);
var client = new queryclassSoapClient(binding, endPoint);
var result = client.NextKey(UserId, XmlIn);
return result;
}
public string PreviousKey(string UserId, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + queryEndpointName);
var client = new queryclassSoapClient(binding, endPoint);
var result = client.PreviousKey(UserId, XmlIn);
return result;
}
#endregion Query Routines
#region Setup Routines
public string Add(string UserId, string BusinessObject, string XmlParameters, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + setupEndpointName);
var client = new setupclassSoapClient(binding, endPoint);
var result = client.Add(UserId, BusinessObject, XmlParameters, XmlIn);
return result;
}
public string Delete(string UserId, string BusinessObject, string XmlParameters, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + setupEndpointName);
var client = new setupclassSoapClient(binding, endPoint);
var result = client.Delete(UserId, BusinessObject, XmlParameters, XmlIn);
return result;
}
public string Update(string UserId, string BusinessObject, string XmlParameters, string XmlIn)
{
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.MaxReceivedMessageSize = 2147483647;
var endPoint = new EndpointAddress(BaseURL + setupEndpointName);
var client = new setupclassSoapClient(binding, endPoint);
var result = client.Update(UserId, BusinessObject, XmlParameters, XmlIn);
return result;
}
#endregion Setup Routines
}
}
|