Advertisement
Guest User

Untitled

a guest
May 14th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.79 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Xml.Serialization;
  10. using System.IO;
  11. using nu.mrorange;
  12. using nu.mrorange.config;
  13. using nu.mrorange.search;
  14. using nu.mrorange.crs;
  15. using System.Drawing;
  16. using System.Threading;
  17.  
  18. namespace MrOSearchApp2
  19. {
  20. public partial class Form1 : Form
  21. {
  22. private string hostName = "", databaseName = "", userName = "sa", passWord = "homermad!";
  23. int partnerId = -1;
  24. Thread mainSearchThread;
  25. public Form1()
  26. {
  27. InitializeComponent();
  28.  
  29. btnSearch.Enabled = false;
  30.  
  31. datePickerDeparture.Value = DateTime.Now.AddDays(7);
  32. datePickerArrival.Value = DateTime.Now.AddDays(14);
  33.  
  34. txtTo.Text = "STO";
  35. txtFrom.Text = "PAR";
  36.  
  37. Server[] servers = GetServers();
  38. int serverCount = 0;
  39. foreach (Server server in servers)
  40. {
  41. passWord = server.passWord;
  42. //string serverName = server;//.Split('.')[0];
  43. //serverName = serverName.Substring(0, 1).ToUpper() + serverName.Remove(0, 1);
  44. string[] databases;
  45. try
  46. {
  47. databases = Database.GetDatabases(server.IpAddress, server.user, server.passWord);
  48. }
  49. catch (Exception ex)
  50. {
  51. MessageBox.Show(this, ex.Message);
  52. return;
  53. }
  54. List<TreeNode> nodes = new List<TreeNode>();
  55. foreach (string database in databases)
  56. {
  57. if (
  58. !database.Contains("avail") &&
  59. !database.Contains("common") &&
  60. database != "information_schema" &&
  61. database != "test" &&
  62. database != "innodb_status" &&
  63. database != "mysql")
  64. nodes.Add(new TreeNode(database));
  65. }
  66. if (nodes.Count == 0)
  67. nodes.Add(new TreeNode("No databases!"));
  68. TreeNode node = new TreeNode(server.Name, nodes.ToArray());
  69. node.Name = server.IpAddress;
  70. TreeView1.Nodes.Add(node);
  71. serverCount++;
  72. }
  73.  
  74. }
  75.  
  76. private static Server[] GetServers()
  77. {
  78. XmlSerializer serializer = new XmlSerializer(typeof(List<Server>));
  79. StreamReader sr = new StreamReader("Servers.xml");
  80. List<Server> servers = (List<Server>)serializer.Deserialize(sr);
  81. return servers.ToArray();
  82. }
  83.  
  84.  
  85. private void TreeView1_DoubleClick(object sender, EventArgs e)
  86. {
  87. ComboBoxCustomer.Items.Clear();
  88. databaseName = TreeView1.SelectedNode.Text;
  89. hostName = TreeView1.SelectedNode.Parent.Name;
  90.  
  91. FillPartnerDropdown();
  92.  
  93. }
  94.  
  95. private void FillPartnerDropdown()
  96. {
  97. //Fill the Partner dropdown
  98. ComboBoxCustomer.Items.Clear();
  99. string[] partners = Database.GetPartners(
  100. TreeView1.SelectedNode.Parent.Name,
  101. "sa",
  102. "homermad!",
  103. TreeView1.SelectedNode.Text);
  104.  
  105. ComboBoxCustomer.Items.Add("0 - BASESITE");
  106. foreach (string partner in partners)
  107. {
  108. ComboBoxCustomer.Items.Add(partner);
  109. }
  110. ComboBoxCustomer.SelectedIndex = 0;
  111. }
  112.  
  113. private void btnSearch_Click(object sender, EventArgs e)
  114. {
  115. mainSearchThread = new Thread(new ThreadStart(DoSearch));
  116. mainSearchThread.Start();
  117. }
  118.  
  119. private void DoSearch()
  120. {
  121. btnSearch.Enabled = false;
  122. string connectionString = "Server=" + hostName + ";Database=" + databaseName + ";User ID=" + userName + "; Password=" + passWord + ";";
  123.  
  124. string[] ageOfChildrenString = txtAgeOfChildren.Text.Split(',');
  125. decimal child;
  126. decimal[] ageChildren;
  127. if (ageOfChildrenString.All(number => Decimal.TryParse(number, out child)));
  128. {
  129. ageChildren = Array.ConvertAll<string, decimal>(ageOfChildrenString, Convert.ToDecimal);
  130. }
  131.  
  132. ConfigurationManager.DatabaseConnectionString = connectionString;
  133. PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  134.  
  135. AirSearchParameter airParam = new AirSearchParameter();
  136.  
  137. airParam.FromCity = txtFrom.Text;
  138. airParam.ToCity = txtTo.Text;
  139. airParam.DepartureDate = DateTime.Parse(datePickerDeparture.Text);
  140. airParam.ReturnDate = DateTime.Parse(datePickerArrival.Text);
  141. airParam.Currency = txtCurrency.Text;
  142. airParam.Adults = Convert.ToInt32(NumericAdult.Value);
  143. airParam.NonAdultAges = ageChildren;
  144. //airParam.NonAdultAges = txtNrOfChildren.Text.Split(',');
  145. airParam.OneWay = chkOneWay.Checked;
  146. airParam.PreferredCarriers = txtPrefCarrier.Text.Split(',');
  147. airParam.ExcludedCarriers = txtExclCarrier.Text.Split(',');
  148. airParam.RestrictToCarriers = txtRestrCarriers.Text.Split(',');
  149. airParam.PartnerConfig = partnerConfig;
  150.  
  151. try
  152. {
  153. List<Itineraries> itins = BookingEngine.GetAirFaresInterface(airParam);
  154. foreach (Itinerary itinerary in itins[0])
  155. {
  156. ListViewItem item = new ListViewItem(itinerary.Id.ToString()); //ItineraryID
  157. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.CRS.ToString()));
  158. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.MainCarrier));
  159. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.BaseFarePerAdult.ToString()));
  160. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.TaxPerAdult.ToString()));
  161. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult).ToString()));
  162. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult + itinerary.Pricing.AddonPricePerAdult).ToString()));
  163. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Subject));
  164. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Message));
  165. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.IpAddress));
  166. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Url));
  167. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.ExceptionId.ToString()));
  168. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.BrowserId.ToString()));
  169.  
  170. //listViewItinerary.Items.Add(item);
  171. UpdateListView(item);
  172. //firstItin = itinerary.Id; //id
  173. }
  174. int searchCount = 0;
  175.  
  176. List<TreeNode> nodes = new List<TreeNode>();
  177. foreach (SearchInfo searchInfo in itins[0].searchInfo)
  178. {
  179. searchCount += 1;
  180. nodes.Add(new TreeNode("CRSName: " + searchInfo.CRStype.ToString()));
  181. nodes.Add(new TreeNode("Search Time: " + searchInfo.SearchTime));
  182. nodes.Add(new TreeNode("Itinerary Count: " + searchInfo.ItineraryCount));
  183. nodes.Add(new TreeNode("Exception: " + searchInfo.ExceptionMessage));
  184. TreeNode node = new TreeNode("Search " + searchCount, nodes.ToArray());
  185. UpdateTreeView(node);
  186. }
  187. }
  188. catch (Exception ex)
  189. {
  190. //DisplayNameAttribute error Message.
  191. MessageBox.Show(ex.Message);
  192. //Console.Write(ex.StackTrace);
  193. }
  194. finally
  195. {
  196. btnSearch.Enabled = true;
  197. }
  198. //listViewItinerary.Items.Clear(); //test
  199. }
  200.  
  201. void UpdateListView(ListViewItem item)
  202. {
  203. if (InvokeRequired)
  204. {
  205. this.Invoke((MethodInvoker)delegate() {
  206. UpdateListView(item);
  207. });
  208. return;
  209. }
  210. listViewItinerary.Items.Add(item).ToString();
  211. }
  212.  
  213. void UpdateTreeView(TreeNode item)
  214. {
  215. if (InvokeRequired)
  216. {
  217. this.Invoke((MethodInvoker)delegate() {
  218. UpdateTreeView(item);
  219. });
  220. return;
  221. }
  222. treeViewSearchInfo.Nodes.Add(item);
  223. }
  224.  
  225. private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
  226. {
  227. btnSearch.Enabled = true;
  228. }
  229.  
  230. private void ComboBoxCustomer_SelectedIndexChanged(object sender, EventArgs e)
  231. {
  232. partnerId = int.Parse(ComboBoxCustomer.Text.Substring(0, 3).Replace("-", "").Trim());
  233. }
  234.  
  235. private void datePickerArrival_ValueChanged(object sender, EventArgs e)
  236. {
  237.  
  238. }
  239. private void listViewItinerary_SelectedIndexChanged(object sender, EventArgs e)
  240. {
  241. listViewRowInfo.Items.Clear();
  242. PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  243.  
  244. {
  245. foreach (ListViewItem item in listViewItinerary.Items)
  246. {
  247. if (item.Selected == true)
  248. {
  249. int itineraryid = int.Parse(item.SubItems[0].Text);
  250. Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
  251. foreach (Segment seg in itinerary.Segments)
  252. {
  253. ListViewItem item2 = new ListViewItem(seg.Id.ToString()); //ItineraryID
  254.  
  255. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime1.ToString("hh:mm")));
  256. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime2.ToString("hh:mm")));
  257. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City2.ToString()));
  258. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City1.ToString()));
  259. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.Carrier + "-" + seg.FlightNumber.ToString()));
  260. listViewRowInfo.Items.Add(item2);
  261.  
  262. }
  263. }
  264. }
  265. }
  266. }
  267. }
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement