712 lines
22 KiB
C#
712 lines
22 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Xml;
|
|
using System.Xml.Linq;
|
|
using System.Xml.Serialization;
|
|
using log4net;
|
|
|
|
namespace SERemoteConnection
|
|
{
|
|
|
|
public class CommandSimpleRequest : AbstractCommand
|
|
{
|
|
public MT.pHLab.SE.V1.Response_SimpleResultRecord m_record;
|
|
string m_simpleRequest;
|
|
|
|
public CommandSimpleRequest(string simpleRequest)
|
|
{
|
|
m_simpleRequest = simpleRequest;
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SESimpleRequest request = new MT.pHLab.SE.V1.SESimpleRequest(GetRequestId(), m_simpleRequest);
|
|
connection.Write(request.CreateTelegram());
|
|
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
m_record = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
m_record.ReadXml(reader);
|
|
|
|
success = true;
|
|
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandGetState : AbstractCommand
|
|
{
|
|
public MT.pHLab.SE.V1.Response_StatusRecord m_record;
|
|
|
|
public CommandGetState()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SESimpleRequest request = new MT.pHLab.SE.V1.SESimpleRequest(GetRequestId(), "connection.getStatus");
|
|
connection.Write(request.CreateTelegram());
|
|
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_StatusRecord))
|
|
{
|
|
m_record = (MT.pHLab.SE.V1.Response_StatusRecord)response.CreateInstance();
|
|
|
|
success = true;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandGetListOfModules : AbstractCommand
|
|
{
|
|
public MT.pHLab.SE.V1.moduleConfigParamRecord[] m_list;
|
|
|
|
public CommandGetListOfModules()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SESimpleRequest request = new MT.pHLab.SE.V1.SESimpleRequest(GetRequestId(), "module.get");
|
|
connection.Write(request.CreateTelegram());
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_moduleGetRecord))
|
|
{
|
|
MT.pHLab.SE.V1.Response_moduleGetRecord record = new MT.pHLab.SE.V1.Response_moduleGetRecord();
|
|
record.ReadXml(reader);
|
|
m_list = record.m_moduleConfigs;
|
|
success = true;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandSetModule : AbstractCommand
|
|
{
|
|
|
|
/*
|
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
|
<Telegram xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="LancePlatform">
|
|
<Request requestId="145623" requestType="module.set">
|
|
<record type="Request_moduleSetRecord">
|
|
<param-list>
|
|
<param name="m_moduleId" type="wstring">A</param>
|
|
<param name="m_sensorId" type="wstring">MTPHSensor</param>
|
|
</param-list>
|
|
</record>
|
|
</Request>
|
|
</Telegram>
|
|
*/
|
|
public MT.pHLab.SE.V1.Request_moduleSetRecord m_request;
|
|
public MT.pHLab.SE.V1.Response_SimpleResultRecord m_response;
|
|
|
|
public CommandSetModule()
|
|
{
|
|
m_request = new MT.pHLab.SE.V1.Request_moduleSetRecord();
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = m_request;
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
m_response = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
m_response.ReadXml(reader);
|
|
|
|
success = m_response.m_bSuccess;
|
|
|
|
setResponse();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandTerminateMethod : AbstractCommand
|
|
{
|
|
public MT.pHLab.SE.V1.Request_terminateMethodRecord m_request;
|
|
public MT.pHLab.SE.V1.Response_SimpleResultRecord m_response;
|
|
|
|
public short JobId { set; get; }
|
|
|
|
public CommandTerminateMethod()
|
|
{
|
|
m_request = new MT.pHLab.SE.V1.Request_terminateMethodRecord();
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
m_request.m_jobId = JobId;
|
|
var record = m_request;
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
m_response = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
m_response.ReadXml(reader);
|
|
|
|
success = m_response.m_bSuccess;
|
|
|
|
setResponse();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandGetListOfMethods : AbstractCommand
|
|
{
|
|
public string[] m_list;
|
|
|
|
public CommandGetListOfMethods()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_setupGetItemListRecord();
|
|
record.m_itemType = "Methods";
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_setupGetItemListRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_setupGetItemListRecord();
|
|
record.ReadXml(reader);
|
|
m_list = record.m_itemList;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandGetListOfSensors : AbstractCommand
|
|
{
|
|
public string[] m_list;
|
|
|
|
public CommandGetListOfSensors()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_setupGetItemListRecord();
|
|
record.m_itemType = "Sensors";
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_setupGetItemListRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_setupGetItemListRecord();
|
|
record.ReadXml(reader);
|
|
m_list = record.m_itemList;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandStartMethod : AbstractCommand
|
|
{
|
|
public string MethodId { set; get; }
|
|
public string SampleId { set; get; }
|
|
public string Comment { set; get; }
|
|
|
|
public bool success = false;
|
|
public short m_JobId;
|
|
|
|
public CommandStartMethod()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_methodParamsRecord();
|
|
record.m_methodId = MethodId;
|
|
record.m_sampleId = SampleId;
|
|
record.m_comment = Comment;
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_startMethodRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_startMethodRecord();
|
|
record.ReadXml(reader);
|
|
success = record.m_methodId == MethodId;
|
|
m_JobId = record.m_jobId;
|
|
} else
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
record.ReadXml(reader);
|
|
|
|
success = record.m_bSuccess;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public enum EItemType
|
|
{
|
|
Sensors,
|
|
Tables,
|
|
Users,
|
|
BufStd,
|
|
Methods
|
|
};
|
|
|
|
/// <summary>
|
|
/// Modified XML writer that writes (almost) no namespaces out with pretty formatting
|
|
/// </summary>
|
|
/// <seealso cref="http://blogs.msdn.com/b/kaevans/archive/2004/08/02/206432.aspx"/>
|
|
public class XmlNoNamespaceWriter : XmlTextWriter
|
|
{
|
|
private bool _SkipAttribute = false;
|
|
//private int _EncounteredNamespaceCount = 0;
|
|
|
|
public XmlNoNamespaceWriter( TextWriter writer)
|
|
: base(writer)
|
|
{
|
|
this.Formatting = System.Xml.Formatting.Indented;
|
|
}
|
|
|
|
public override void WriteStartDocument()
|
|
{
|
|
// Do nothing (omit the declaration)
|
|
}
|
|
|
|
public override void WriteStartElement(string prefix, string localName, string ns)
|
|
{
|
|
base.WriteStartElement(null, localName, null);
|
|
}
|
|
|
|
public override void WriteStartAttribute(string prefix, string localName, string ns)
|
|
{
|
|
//If the prefix or localname are "xmlns", don't write it.
|
|
//HOWEVER... if the 1st element (root?) has a namespace we will write it.
|
|
if ((prefix.CompareTo("xmlns") == 0 ||
|
|
localName.CompareTo("xmlns") == 0))
|
|
{
|
|
_SkipAttribute = true;
|
|
}
|
|
else
|
|
{
|
|
base.WriteStartAttribute(null, localName, null);
|
|
}
|
|
}
|
|
|
|
public override void WriteString(string text)
|
|
{
|
|
//If we are writing an attribute, the text for the xmlns
|
|
//or xmlns:prefix declaration would occur here. Skip
|
|
//it if this is the case.
|
|
if (!_SkipAttribute)
|
|
{
|
|
base.WriteString(text);
|
|
}
|
|
}
|
|
|
|
public override void WriteEndAttribute()
|
|
{
|
|
//If we skipped the WriteStartAttribute call, we have to
|
|
//skip the WriteEndAttribute call as well or else the XmlWriter
|
|
//will have an invalid state.
|
|
if (!_SkipAttribute)
|
|
{
|
|
base.WriteEndAttribute();
|
|
}
|
|
//reset the boolean for the next attribute.
|
|
_SkipAttribute = false;
|
|
}
|
|
|
|
public override void WriteQualifiedName(string localName, string ns)
|
|
{
|
|
//Always write the qualified name using only the
|
|
//localname.
|
|
base.WriteQualifiedName(localName, null);
|
|
}
|
|
}
|
|
|
|
public class CommandExportTable : AbstractCommand
|
|
{
|
|
|
|
public bool success = false;
|
|
protected EItemType m_eItemType;
|
|
MT.pHLab.SE.V1.Response_SimpleResultRecord m_response;
|
|
public byte[] Table { set; get; }
|
|
|
|
public CommandExportTable(EItemType eItemType)
|
|
{
|
|
m_eItemType = eItemType;
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_setupExportRecord();
|
|
record.m_itemGroup = m_eItemType.ToString();
|
|
record.m_itemName = "";
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
reader.Read();
|
|
if (reader.Name.Equals("pdk-db") && (reader.NodeType == XmlNodeType.Element))
|
|
{
|
|
XmlReader _reader = reader.ReadSubtree();
|
|
XmlDocument doc = new XmlDocument();
|
|
doc.Load(_reader);
|
|
|
|
StringWriter textWriter = new StringWriter();
|
|
using (var xmlWriter = new XmlNoNamespaceWriter(textWriter))
|
|
{
|
|
doc.Save(xmlWriter);
|
|
Console.WriteLine(textWriter.ToString() );
|
|
Table = System.Text.Encoding.UTF8.GetBytes(textWriter.ToString());
|
|
}
|
|
success = true;
|
|
}
|
|
else
|
|
if (reader.Name.Equals("record") && (reader.NodeType == XmlNodeType.Element))
|
|
{
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
m_response = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
m_response.ReadXml(reader);
|
|
|
|
success = m_response.m_bSuccess;
|
|
}
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandImportTable : AbstractCommand
|
|
{
|
|
|
|
public bool success = false;
|
|
protected EItemType m_eItemType;
|
|
MT.pHLab.SE.V1.Response_SimpleResultRecord m_response;
|
|
|
|
public Byte[] Table { set; get; }
|
|
|
|
public CommandImportTable()
|
|
{
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
XmlWriterSettings settings = new XmlWriterSettings();
|
|
settings.Indent = false;
|
|
settings.Encoding = new UTF8Encoding(false);
|
|
using (MemoryStream output = new MemoryStream())
|
|
{
|
|
using (var writer = XmlWriter.Create(output, settings ))
|
|
{
|
|
writer.WriteStartDocument();
|
|
writer.WriteStartElement("Telegram");
|
|
writer.WriteAttributeString("xmlns", "xsd", null, "http://www.w3.org/2001/XMLSchema");
|
|
writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
|
|
writer.WriteStartElement("Request");
|
|
writer.WriteAttributeString("requestType", "setup.import");
|
|
writer.WriteAttributeString("requestId", GetRequestId().ToString());
|
|
{
|
|
string content = Encoding.UTF8.GetString(Table);
|
|
string unformated = XElement.Parse(content).ToString(SaveOptions.DisableFormatting);
|
|
Console.WriteLine(unformated);
|
|
|
|
writer.WriteRaw(unformated);
|
|
}
|
|
writer.WriteEndElement();
|
|
writer.WriteEndDocument();
|
|
}
|
|
connection.Write(output.ToArray());
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
|
//<Telegram xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="LancePlatform">
|
|
// <Response requestId="152015">
|
|
// <record type="Response_SimpleResultRecord">
|
|
// <param-list>
|
|
// <param name="m_bSuccess" type="boolean">true</param>
|
|
// <param name="m_errorReason" type="wstring" />
|
|
// </param-list>
|
|
// </record>
|
|
// </Response>
|
|
//</Telegram>
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
//reader.Read();
|
|
//if (reader.Name.Equals("record") && (reader.NodeType == XmlNodeType.Element))
|
|
{
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
m_response = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
m_response.ReadXml(reader);
|
|
|
|
success = m_response.m_bSuccess;
|
|
}
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandSettingGet : AbstractCommand
|
|
{
|
|
public string Setting { set; get; }
|
|
public string Value { set; get; }
|
|
|
|
public CommandSettingGet()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_getSettingRecord();
|
|
record.m_settingName = Setting;
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_getSettingRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_getSettingRecord();
|
|
record.ReadXml(reader);
|
|
Value = record.m_settingValue;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
public class CommandSettingSet : AbstractCommand
|
|
{
|
|
public string Setting { set; get; }
|
|
public string Value { set; get; }
|
|
|
|
public CommandSettingSet()
|
|
{
|
|
|
|
}
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_setSettingRecord();
|
|
record.m_settingName = Setting;
|
|
record.m_settingValue = Value;
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_SimpleResultRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_SimpleResultRecord();
|
|
record.ReadXml(reader);
|
|
success = record.m_bSuccess;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public class CommandScreenLogin : AbstractCommand
|
|
{
|
|
public string[] Usererlist{ set; get; }
|
|
public string Username{ set; get; }
|
|
public string Password{ set; get; }
|
|
|
|
public CommandScreenLogin()
|
|
{
|
|
|
|
}
|
|
|
|
/*
|
|
* <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
|
<Telegram xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="LancePlatform">
|
|
<Request requestId="132440" requestType="login">
|
|
<record type="Request_loginRecord">
|
|
<param-list>
|
|
<param name="m_usernames" type="sequence" sequenceType="wstring">
|
|
<item>Tom</item>
|
|
<item>Jerry</item>
|
|
<item>Alex</item>
|
|
</param>
|
|
</param-list>
|
|
</record>
|
|
</Request>
|
|
</Telegram>
|
|
* */
|
|
|
|
public override bool Submit(SEConnection connection)
|
|
{
|
|
MT.pHLab.SE.V1.SEParamRequest request = new MT.pHLab.SE.V1.SEParamRequest(GetRequestId());
|
|
var record = new MT.pHLab.SE.V1.Request_loginRecord();
|
|
if (Usererlist != null)
|
|
{
|
|
record.m_usernames = Usererlist;
|
|
}
|
|
else
|
|
{
|
|
record.m_usernames = new string[] { };
|
|
|
|
}
|
|
connection.Write(request.CreateTelegram(record));
|
|
return true;
|
|
}
|
|
|
|
public override bool OnResponse(XmlReader reader)
|
|
{
|
|
bool success = false;
|
|
|
|
MT.pHLab.SE.V1.SEResponse response = MT.pHLab.SE.V1.SEResponse.CreateFromXml(reader);
|
|
|
|
if (response.GetRecordType() == typeof(MT.pHLab.SE.V1.Response_loginRecord))
|
|
{
|
|
var record = new MT.pHLab.SE.V1.Response_loginRecord();
|
|
record.ReadXml(reader);
|
|
Username = record.m_username;
|
|
Password = record.m_password;
|
|
}
|
|
|
|
setResponse();
|
|
|
|
return success;
|
|
}
|
|
}
|
|
|
|
}
|