PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Veerabook/WebForm2.aspx.cs

https://bitbucket.org/veerabooking/veerabooking
C# | 221 lines | 173 code | 39 blank | 9 comment | 1 complexity | 1abd4f1ed91f8db70d45ba62de432f38 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Text;
  7. using System.Web;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Data;
  11. using System.Text.RegularExpressions;
  12. using Newtonsoft.Json.Linq;
  13. using Newtonsoft.Json;
  14. using System.Xml.Linq;
  15. using System.Xml;
  16. namespace Veerabook
  17. {
  18. public partial class WebForm2 : System.Web.UI.Page
  19. {
  20. private Xtools xtools = new Xtools();
  21. protected void Page_Load(object sender, EventArgs e)
  22. {
  23. }
  24. protected void login()
  25. {
  26. WebRequest request = WebRequest.Create("http://api-test.multireisen.com/login/");
  27. request.Method = "POST";
  28. string postData = "xml=" + "<MultireisenAPI_Request><Login><LoginName>admin@dynawix.com</LoginName><Passw>123</Passw></Login></MultireisenAPI_Request>";
  29. byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  30. request.ContentType = "application/x-www-form-urlencoded";
  31. request.ContentLength = byteArray.Length;
  32. Stream dataStream = request.GetRequestStream();
  33. dataStream.Write(byteArray, 0, byteArray.Length);
  34. dataStream.Close();
  35. WebResponse response = request.GetResponse();
  36. dataStream = response.GetResponseStream();
  37. StreamReader reader = new StreamReader(dataStream);
  38. string responseFromServer = reader.ReadToEnd();
  39. xresult.Text = responseFromServer;
  40. StringReader theReader = new StringReader(xresult.Text);
  41. DataSet OriginalDataSet = new DataSet("dataSet");
  42. OriginalDataSet.ReadXml(theReader);
  43. //grid1.DataSource = OriginalDataSet.Tables["Login"];
  44. //grid1.DataBind();
  45. Session["SessionId"] = OriginalDataSet.Tables["Login"].Rows[0]["SessionID"];
  46. reader.Close();
  47. dataStream.Close();
  48. response.Close();
  49. }
  50. protected void btnLogin_OnClick(object sender, EventArgs e)
  51. {
  52. login();
  53. }
  54. protected void btnSearch_OnClick(object sender, EventArgs e)
  55. {
  56. SearchToken();
  57. GetHotelData();
  58. }
  59. void SearchToken()
  60. {
  61. WebRequest request = WebRequest.Create("http://api-test.multireisen.com/hotelsearch/");
  62. request.Method = "POST";
  63. string postData = "xml=" + "<MultireisenAPI_Request><RequestHeader><LoginName>admin@dynawix.com</LoginName><SessionId>" + Session["SessionId"].ToString() + "</SessionId><Language>en</Language><AsyncMode>FALSE</AsyncMode></RequestHeader><SearchData><Hotel><Destination><CityCode></CityCode><CityName>Hurghada</CityName></Destination><CheckIn>2018-09-01</CheckIn><CheckOut>2018-09-03</CheckOut><Rooms><Room><RoomType>2</RoomType><Children></Children></Room></Rooms><Category></Category></Hotel></SearchData></MultireisenAPI_Request>";
  64. byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  65. request.ContentType = "application/x-www-form-urlencoded";
  66. request.ContentLength = byteArray.Length;
  67. Stream dataStream = request.GetRequestStream();
  68. dataStream.Write(byteArray, 0, byteArray.Length);
  69. dataStream.Close();
  70. WebResponse response = request.GetResponse();
  71. dataStream = response.GetResponseStream();
  72. StreamReader reader = new StreamReader(dataStream);
  73. string responseFromServer = reader.ReadToEnd();
  74. txtSearchHotel.Text = responseFromServer;
  75. StringReader theReader = new StringReader(txtSearchHotel.Text);
  76. DataSet OriginalDataSet = new DataSet("dataSet");
  77. OriginalDataSet.ReadXmlSchema(AppDomain.CurrentDomain.BaseDirectory + "XML/Schema/MR.XSD");
  78. OriginalDataSet.ReadXml(theReader);
  79. Session["SessionToken"] = OriginalDataSet.Tables[0].Rows[0]["SearchToken"];
  80. //gvHotels.DataSource = OriginalDataSet.Tables[0];
  81. //gvHotels.DataBind();
  82. reader.Close();
  83. dataStream.Close();
  84. response.Close();
  85. }
  86. void GetHotelData()
  87. {
  88. WebRequest request = WebRequest.Create("http://api-test.multireisen.com/hotelsearch/result/");
  89. request.Method = "POST";
  90. string postData = "xml=" + "<MultireisenAPI_Request><RequestHeader><LoginName>admin@dynawix.com</LoginName><SessionId>" + Session["SessionId"].ToString() + "</SessionId><SearchToken>" + Session["SessionToken"].ToString() + "</SearchToken></RequestHeader></MultireisenAPI_Request>";
  91. byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  92. request.ContentType = "application/x-www-form-urlencoded";
  93. request.ContentLength = byteArray.Length;
  94. Stream dataStream = request.GetRequestStream();
  95. dataStream.Write(byteArray, 0, byteArray.Length);
  96. dataStream.Close();
  97. WebResponse response = request.GetResponse();
  98. dataStream = response.GetResponseStream();
  99. StreamReader reader = new StreamReader(dataStream);
  100. string responseFromServer = reader.ReadToEnd();
  101. txtSearchHotel.Text = responseFromServer;
  102. StringReader theReader = new StringReader(txtSearchHotel.Text);
  103. DataSet OriginalDataSet = new DataSet("dataSet");
  104. OriginalDataSet.ReadXmlSchema(AppDomain.CurrentDomain.BaseDirectory + "XML/Schema/MR.XSD");
  105. OriginalDataSet.ReadXml(theReader);
  106. //Session["SessionToken"] = OriginalDataSet.Tables[0].Rows[0]["SearchToken"];
  107. gvHotels.DataSource = OriginalDataSet.Tables["HotelResults"];
  108. gvHotels.DataBind();
  109. reader.Close();
  110. dataStream.Close();
  111. response.Close();
  112. }
  113. protected DataSet book()
  114. {
  115. WebRequest request = WebRequest.Create("http://api-test.multireisen.com/initbooking/");
  116. request.Method = "POST";
  117. string postData = "xml=" + "<MultireisenAPI_Request><RequestHeader><LoginName>admin@dynawix.com</LoginName><SessionId>4uffsvi4o0asb5k710i7sg0nv6</SessionId><SearchToken>79ae3d4b8ce84e5f450c78583d3c8817</SearchToken></RequestHeader><InitBookingData><Contact><Title>Mr</Title><Lastname>Teszt</Lastname><Firstname>Contact</Firstname><Email>test.user@gmail.com</Email><Phone>123456789</Phone><Country>HU</Country><Zip>1234</Zip><City>Budapest</City><Address>Teszt utca 11</Address></Contact><Invoice><Name> Test Company </Name><Country>HU</Country><Zip>1234</Zip><City>Budapest</City><Address>Teszt utca 11 </Address></Invoice><Passengers><Passenger><Type>ADT</Type><Title>Mr</Title><Firstname>John</Firstname><Lastname>Doe</Lastname><Birthdate>1971-05-13</Birthdate><Nationality>Egyptian</Nationality><PassportNumber>4545</PassportNumber><PassportCountry>Egypt</PassportCountry><PassportIssued>05/17</PassportIssued><PassportExp>05/22</PassportExp></Passenger><Passenger><Type>ADT</Type><Title>Mr</Title><Firstname>John</Firstname><Lastname>Doe</Lastname><Birthdate>1971-05-13</Birthdate><Nationality>Egyptian</Nationality><PassportNumber>4545</PassportNumber><PassportCountry>Egypt</PassportCountry><PassportIssued>05/17</PassportIssued><PassportExp>05/22</PassportExp></Passenger></Passengers><Paymode>9</Paymode></InitBookingData></MultireisenAPI_Request>";
  118. byte[] byteArray = Encoding.UTF8.GetBytes(postData);
  119. request.ContentType = "application/x-www-form-urlencoded";
  120. request.ContentLength = byteArray.Length;
  121. Stream dataStream = request.GetRequestStream();
  122. dataStream.Write(byteArray, 0, byteArray.Length);
  123. dataStream.Close();
  124. WebResponse response = request.GetResponse();
  125. dataStream = response.GetResponseStream();
  126. StreamReader reader = new StreamReader(dataStream);
  127. string responseFromServer = reader.ReadToEnd();
  128. xresult.Text = responseFromServer;
  129. StringReader theReader = new StringReader(xresult.Text);
  130. DataSet OriginalDataSet = new DataSet("dataSet");
  131. OriginalDataSet.ReadXml(theReader);
  132. return OriginalDataSet;
  133. }
  134. protected void btnInit_Click(object sender, EventArgs e)
  135. {
  136. WebRequest requestItem = WebRequest.Create("http://api-test.multireisen.com/initbooking/");
  137. requestItem.Method = "POST";
  138. string postDataItem = "xml=" + "<MultireisenAPI_Request><RequestHeader><LoginName>admin@dynawix.com</LoginName><SessionId>r74qj7tpl5bc58anlfmalrl0b2</SessionId><SearchToken>d5caefbcea268b812cbcd6772b6fa45c</SearchToken></RequestHeader><InitBookingData><Contact><Title>Mr</Title><Lastname>Teszt</Lastname><Firstname>Contact</Firstname><Email>test.user@gmail.com</Email><Phone>123456789</Phone><Country>HU</Country><Zip>1234</Zip><City>Budapest</City><Address>Teszt utca 11</Address></Contact><Invoice><Name> Test Company </Name><Country>HU</Country><Zip>1234</Zip><City>Budapest</City><Address>Teszt utca 11 </Address></Invoice><Passengers><Passenger><Type>ADT</Type><Title>Mr</Title><Firstname>John</Firstname><Lastname>Doe</Lastname><Birthdate>1971-05-13</Birthdate><Nationality>Egyptian</Nationality><PassportNumber>4545</PassportNumber><PassportCountry>Egypt</PassportCountry><PassportIssued>05/17</PassportIssued><PassportExp>05/22</PassportExp></Passenger><Passenger><Type>ADT</Type><Title>Mr</Title><Firstname>John</Firstname><Lastname>Doe</Lastname><Birthdate>1971-05-13</Birthdate><Nationality>Egyptian</Nationality><PassportNumber>4545</PassportNumber><PassportCountry>Egypt</PassportCountry><PassportIssued>05/17</PassportIssued><PassportExp>05/22</PassportExp></Passenger></Passengers><Paymode>9</Paymode></InitBookingData></MultireisenAPI_Request>";
  139. byte[] byteArrayItem = Encoding.UTF8.GetBytes(postDataItem);
  140. requestItem.ContentType = "application/x-www-form-urlencoded";
  141. requestItem.ContentLength = byteArrayItem.Length;
  142. Stream dataStreamItem = requestItem.GetRequestStream();
  143. dataStreamItem.Write(byteArrayItem, 0, byteArrayItem.Length);
  144. dataStreamItem.Close();
  145. WebResponse responseItem = requestItem.GetResponse();
  146. dataStreamItem = responseItem.GetResponseStream();
  147. StreamReader readerItem = new StreamReader(dataStreamItem);
  148. string responseFromServerItem = readerItem.ReadToEnd();
  149. StringReader theReaderItem = new StringReader(responseFromServerItem);
  150. DataSet OriginalDataSetItem = new DataSet("dataSet");
  151. OriginalDataSetItem.ReadXml(theReaderItem);
  152. //Write to Text File Caching
  153. System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/HotelInitBooking.XML", responseFromServerItem);
  154. //Split Rooms Using XML Nodes
  155. XmlDocument xdocItem = new XmlDocument();
  156. xdocItem.Load(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/HotelInitBooking.XML");
  157. // var xmls = xDoc.Root.Elements().ToArray(); // split into elements
  158. XmlNodeList listItem = xdocItem.SelectNodes("//InitBooking");
  159. DataTable dtItem = new DataTable();
  160. dtItem.Columns.Add("Hotel_ID");
  161. dtItem.Columns.Add("bookingitemid");
  162. dtItem.Columns.Add("total_Price");
  163. dtItem.Columns.Add("BookingId");
  164. string SessionId = "r74qj7tpl5bc58anlfmalrl0b2";
  165. string SearchToken = "d5caefbcea268b812cbcd6772b6fa45c";
  166. for (int i = 0; i < listItem.Count; i++)
  167. {
  168. DataRow newRow1 = dtItem.NewRow();
  169. newRow1["Hotel_ID"] = listItem[i].ChildNodes[0].ChildNodes[0].ChildNodes[0].ChildNodes[0].InnerText;
  170. newRow1["bookingitemid"] = listItem[i].ChildNodes[0].ChildNodes[0].ChildNodes[0].ChildNodes[4].InnerText;
  171. newRow1["total_Price"] = listItem[i].ChildNodes[0].ChildNodes[0].ChildNodes[0].ChildNodes[6].ChildNodes[5].InnerText;
  172. newRow1["BookingId"] = listItem[i].ChildNodes[2].InnerText;
  173. //
  174. string sqlQuery = "INSERT INTO [dbo].[Hotel_InitBooking] (Hotel_ID, bookingitemid, total_Price, BookingId, SessionId, SearchToken) VALUES (" + newRow1["Hotel_ID"].ToString() + "," + newRow1["bookingitemid"].ToString() + "," + decimal.Parse(newRow1["total_Price"].ToString()) + "," + newRow1["BookingId"].ToString() + "," + SessionId + "," + SearchToken + ")";
  175. xtools.SQLINSERT(sqlQuery);
  176. dtItem.Rows.Add(newRow1);
  177. }
  178. grid1.DataSource = dtItem;
  179. grid1.DataBind();
  180. }
  181. }
  182. }