您的位置:首页 > 产品设计 > UI/UE

client request and response

2009-03-23 15:30 295 查看
/// <summary>

/// Build the protocol to xml string

/// </summary>

/// <returns>xml string</returns>

public override string PackMessage()

{

StringBuilder xmlSB = new StringBuilder();

RestaurantEntity.NewAccountDataTable loginTable = (RestaurantEntity.NewAccountDataTable)m_Param;

xmlSB.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><message version=\"1.0\">");

xmlSB.Append("<function>" + m_RequestCode + "</function><Data>");

xmlSB.Append("<Sid>" + SessionID + "</Sid>");

xmlSB.Append("<EmpUserName>" + loginTable[0].EmpUserName + "</EmpUserName>");

xmlSB.Append("<EmpPassword>" + loginTable[0].EmpPassword + "</EmpPassword>");

xmlSB.Append("</Data></message>");

return xmlSB.ToString();

}

/// <summary>

/// Parse the Returned xml string

/// </summary>

/// <param name="xmlString">Returned xml string</param>

/// <returns>The object that been parse</returns>

public override ResultValue ParseMessage(string xmlString)

{

ResultValue resultValue = new ResultValue();

resultValue.SessionID = this.SessionID;

resultValue.Param = this.m_Param;

XmlDataDocument responseData = new XmlDataDocument();

XmlElement element;

try

{

responseData.LoadXml(xmlString);

element = (XmlElement)responseData.GetElementsByTagName("Server")[0];

if (element.GetAttribute("resNo") == ReturnFlag.Failed)

{

resultValue.Flag = ReturnFlag.Failed;

resultValue.Data = new ServerReturnException(Info + element["ErrorCode"].InnerXml);

return resultValue;

}

RelationTable relation = new RelationTable();

RestaurantEntity.NewAccountDataTable accountTable = new RestaurantEntity.NewAccountDataTable();

RestaurantEntity.IDNameListDataTable idNameTable = new RestaurantEntity.IDNameListDataTable();

relation.Master = accountTable;

relation.Hypotaxis = idNameTable;

RestaurantEntity.NewAccountRow accountRow = accountTable.NewNewAccountRow();

accountRow.EmpID = element["EmpID"].InnerText.Trim();

accountRow.EmpUserName = element["EmpName"].InnerText.Trim();

accountRow.EmpPassword = element["Admin"].InnerText.Trim();

foreach (XmlElement node in (element.GetElementsByTagName("FunctionID")))

{

RestaurantEntity.IDNameListRow idNameRow = idNameTable.NewIDNameListRow();

idNameRow.ID = node.InnerText.Trim();

idNameTable.AddIDNameListRow(idNameRow);

}

accountTable.AddNewAccountRow(accountRow);

resultValue.Flag = ReturnFlag.Successed;

resultValue.Data = relation;

}

catch (Exception e)

{

resultValue.Flag = ReturnFlag.Failed;

resultValue.Data = new ParsePacketException(Info + " " + e.Message);

}

return resultValue;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: