PageRenderTime 51ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/Veerabook/HotelDetailPages.aspx.cs

https://bitbucket.org/veerabooking/veerabooking
C# | 223 lines | 109 code | 64 blank | 50 comment | 0 complexity | dd16e78a5aa28aeea3d8be57670eca13 MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Text;
  9. using System.Web;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. using Newtonsoft.Json;
  13. using Newtonsoft.Json.Linq;
  14. using System.Xml;
  15. using System.Xml.Linq;
  16. namespace Veerabook
  17. {
  18. public partial class HotelDetailPages : System.Web.UI.Page
  19. {
  20. private DataRow newRow;
  21. Xtools xtools = new Xtools();
  22. Multi multi = new Multi();
  23. protected void Page_Load(object sender, EventArgs e)
  24. {
  25. BindHotelLv();
  26. StoreHotelDetails();
  27. }
  28. void BindHotelLv()
  29. {
  30. string text = System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Cache/" + Session["SessionSearchToken"] + ".XML");
  31. StringReader theReader = new StringReader(text);
  32. DataSet originalDataSet = new DataSet("dataSet");
  33. originalDataSet.ReadXml(theReader);
  34. //Get Only the Data of This Hotel out of the Cached XML
  35. DataView view = new DataView(originalDataSet.Tables[0]);
  36. view.RowFilter = "Hotel_ID = '" + Request.QueryString["ID"].ToString() + "'";
  37. Session["Hotel_ID"] = Request.QueryString["ID"].ToString();
  38. var dv = view.ToTable();
  39. //Get Basic Info into Literals and get slideshow images
  40. Hotel_name.Text = lblHotelName.Text = dv.Rows[0]["Hotel_name"].ToString();
  41. Hotel_Address.Text = dv.Rows[0]["Hotel_Address"].ToString();
  42. Session["Hotel_Location_LAT"] = dv.Rows[0]["Hotel_Location_LAT"].ToString();
  43. Session["Hotel_Location_LNG"] = dv.Rows[0]["Hotel_Location_LNG"].ToString();
  44. //int hotelCatVal = int.Parse(dv.Rows[0]["Hotel_Category"].ToString());
  45. //string stars = "";
  46. //for (var i = 0; i < hotelCatVal; i++)
  47. //{
  48. // stars += "<i class='fa fa-star'></i> ";
  49. //}
  50. //stars += " Star/s";
  51. //Hotel_Category.Text = stars;
  52. //Hotel_Category.Text = dv.Rows[0]["Hotel_Category"].ToString();
  53. //Slideshow
  54. var dt = new DataTable();
  55. dt = xtools.getHotelImages(Hotel_name.Text + " " + dv.Rows[0]["Hotel_City_Name"].ToString(), 7);
  56. //Set first slide
  57. first_slide.Src = dt.Rows[0]["Contenturl"].ToString();
  58. Session["HotelImg"] = first_slide.Src.ToString();
  59. HotelImgslideshow.DataSource = dt;
  60. HotelImgslideshow.DataBind();
  61. //Get all Rooms of This Hotel Databound into the Rooms Repeater
  62. lvRooms.DataSource = dv;
  63. lvRooms.DataBind();
  64. }
  65. void BindHotelItemLv()
  66. {
  67. string text = System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/" + Request.QueryString["ID"].ToString() + "_Details.XML");
  68. Session["HotelIDAmenities"] = Request.QueryString["ID"].ToString();
  69. StringReader theReader = new StringReader(text);
  70. DataSet originalDataSet = new DataSet("dataSet");
  71. originalDataSet.ReadXml(theReader);
  72. // lblLocation.Text = originalDataSet.Tables["HotelResult"].Rows[0]["Hotel_Location"].ToString();
  73. // lblDescription.Text = originalDataSet.Tables["HotelResult"].Rows[0]["Hotel_Description"].ToString();
  74. // lvAmenities.DataSource = originalDataSet.Tables["HotelResult"];
  75. // lvAmenities.DataBind();
  76. //for (int i = 0; i < 5; i++)
  77. //{
  78. // lblamin.Text = originalDataSet.Tables["HotelResult"].Rows[i]["Hotel_Amenities"].ToString();
  79. //}
  80. }
  81. void StoreHotelDetails()
  82. {
  83. WebRequest requestItem = WebRequest.Create("http://api.multireisen.com/getitemdetails/");
  84. requestItem.Method = "POST";
  85. string postDataItem = "xml=" + "<MultireisenAPI_Request><RequestHeader><LoginName>admin@traveloo.club</LoginName><SessionId>"+ Session["SessionId"] + "</SessionId><SearchToken>"+ Session["SessionSearchToken"] + "</SearchToken><Language>en</Language></RequestHeader><GetItemDetails><Hotel><ItemID>"+ Request.QueryString["ID"].ToString() + "</ItemID></Hotel></GetItemDetails></MultireisenAPI_Request>";
  86. byte[] byteArrayItem = Encoding.UTF8.GetBytes(postDataItem);
  87. requestItem.ContentType = "application/x-www-form-urlencoded";
  88. requestItem.ContentLength = byteArrayItem.Length;
  89. Stream dataStreamItem = requestItem.GetRequestStream();
  90. dataStreamItem.Write(byteArrayItem, 0, byteArrayItem.Length);
  91. dataStreamItem.Close();
  92. WebResponse responseItem = requestItem.GetResponse();
  93. dataStreamItem = responseItem.GetResponseStream();
  94. StreamReader readerItem = new StreamReader(dataStreamItem);
  95. string responseFromServerItem = readerItem.ReadToEnd();
  96. StringReader theReaderItem = new StringReader(responseFromServerItem);
  97. DataSet OriginalDataSetItem = new DataSet("dataSet");
  98. OriginalDataSetItem.ReadXml(theReaderItem);
  99. //Write to Text File Caching
  100. System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/" + Request.QueryString["ID"].ToString() + ".XML", responseFromServerItem);
  101. //Split Rooms Using XML Nodes
  102. XmlDocument xdocItem = new XmlDocument();
  103. xdocItem.Load(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/" + Request.QueryString["ID"].ToString() + ".XML");
  104. // var xmls = xDoc.Root.Elements().ToArray(); // split into elements
  105. XmlNodeList listItem = xdocItem.SelectNodes("//HotelResult");
  106. DataTable dtItem = new DataTable();
  107. dtItem.Columns.Add("Hotel_Location");
  108. dtItem.Columns.Add("Hotel_Description");
  109. dtItem.Columns.Add("Hotel_Amenities");
  110. //DataSet ds = new DataSet();
  111. //ds.Tables.Add(dtItem);
  112. int numAmen;
  113. string nodeName;
  114. //for (int i = 0; i < listItem.Count; i++)
  115. //{
  116. // DataRow newRow1 = dtItem.NewRow();
  117. // newRow1["Hotel_Location"] = listItem[i].ChildNodes[0].ChildNodes[1].InnerText;
  118. // newRow1["Hotel_Description"] = listItem[i].ChildNodes[0].ChildNodes[7].InnerText;
  119. // dtItem.Rows.Add(newRow1);
  120. //}
  121. //for (int i = 0; i < 21; i++)
  122. //{
  123. // DataRow newRow = dtItem.NewRow();
  124. // numAmen = i + 10;
  125. // nodeName = listItem[0].ChildNodes[0].ChildNodes[numAmen].Name.ToString();
  126. // if (nodeName != "rooms_description")
  127. // {
  128. // break;
  129. // }
  130. // else
  131. // {
  132. // newRow["Hotel_Amenities"] = "<i class='fa fa-check-circle circle-icon' aria-hidden='true'> " + listItem[0].ChildNodes[0].ChildNodes[numAmen].ChildNodes[0].InnerText + "</i><br />";
  133. // dtItem.Rows.Add(newRow);
  134. // }
  135. //}
  136. //Cache the Over All Result to XML File
  137. dtItem.TableName = "HotelResult";
  138. dtItem.WriteXml(AppDomain.CurrentDomain.BaseDirectory + "Cache/GetItemDetails/" + Request.QueryString["ID"].ToString() + "_Details.XML");
  139. BindHotelItemLv();
  140. readerItem.Close();
  141. dataStreamItem.Close();
  142. responseItem.Close();
  143. }
  144. protected void lvRooms_ItemDataBound(object sender, ListViewItemEventArgs e)
  145. {
  146. System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
  147. string hotel_id = rowView["Hotel_ID"].ToString() ;
  148. string session_id = rowView["SessionId"].ToString();
  149. string room_id = rowView["Room_ID"].ToString();
  150. string search_token = rowView["SearchToken"].ToString();
  151. string RoomInfo = multi.GetRoomData(hotel_id, room_id, session_id, search_token);
  152. using (FileStream fs = File.Create(AppDomain.CurrentDomain.BaseDirectory + "Cache/RoomInfo_" + Session["SessionSearchToken"] + "_" + room_id + ".XML"))
  153. {
  154. byte[] info = new UTF8Encoding(true).GetBytes(RoomInfo);
  155. fs.Write(info, 0, info.Length);
  156. }
  157. }
  158. }
  159. }