Advertisement
Guest User

Untitled

a guest
May 18th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.26 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. using nu.mrorange.util.log;
  18.  
  19. namespace MrOSearchApp2
  20. {
  21. public partial class Form1 : Form
  22. {
  23. private string hostName = "", databaseName = "", userName = "sa", passWord = "homermad!";
  24. int partnerId = -1;
  25. Thread mainSearchThread;
  26. public Form1()
  27. {
  28. InitializeComponent();
  29.  
  30. btnSearch.Enabled = false;
  31.  
  32. datePickerDeparture.Value = DateTime.Now.AddDays(7);
  33. datePickerArrival.Value = DateTime.Now.AddDays(14);
  34.  
  35. txtTo.Text = "STO";
  36. txtFrom.Text = "PAR";
  37.  
  38. Server[] servers = GetServers();
  39. int serverCount = 0;
  40. foreach (Server server in servers)
  41. {
  42. passWord = server.passWord;
  43. //string serverName = server;//.Split('.')[0];
  44. //serverName = serverName.Substring(0, 1).ToUpper() + serverName.Remove(0, 1);
  45. string[] databases;
  46. try
  47. {
  48. databases = Database.GetDatabases(server.IpAddress, server.user, server.passWord);
  49. }
  50. catch (Exception ex)
  51. {
  52. MessageBox.Show(this, ex.Message);
  53. return;
  54. }
  55. List<TreeNode> nodes = new List<TreeNode>();
  56. foreach (string database in databases)
  57. {
  58. if (
  59. !database.Contains("avail") &&
  60. !database.Contains("common") &&
  61. database != "information_schema" &&
  62. database != "test" &&
  63. database != "innodb_status" &&
  64. database != "mysql")
  65. nodes.Add(new TreeNode(database));
  66. }
  67. if (nodes.Count == 0)
  68. nodes.Add(new TreeNode("No databases!"));
  69. TreeNode node = new TreeNode(server.Name, nodes.ToArray());
  70. node.Name = server.IpAddress;
  71. TreeView1.Nodes.Add(node);
  72. serverCount++;
  73. }
  74.  
  75. }
  76.  
  77. private static Server[] GetServers()
  78. {
  79. XmlSerializer serializer = new XmlSerializer(typeof(List<Server>));
  80. StreamReader sr = new StreamReader("Servers.xml");
  81. List<Server> servers = (List<Server>)serializer.Deserialize(sr);
  82. return servers.ToArray();
  83. }
  84.  
  85.  
  86. private void TreeView1_DoubleClick(object sender, EventArgs e)
  87. {
  88. ComboBoxCustomer.Items.Clear();
  89. databaseName = TreeView1.SelectedNode.Text;
  90. hostName = TreeView1.SelectedNode.Parent.Name;
  91.  
  92. FillPartnerDropdown();
  93.  
  94. }
  95.  
  96. private void FillPartnerDropdown()
  97. {
  98. //Fill the Partner dropdown
  99. ComboBoxCustomer.Items.Clear();
  100. string[] partners = Database.GetPartners(
  101. TreeView1.SelectedNode.Parent.Name,
  102. "sa",
  103. "homermad!",
  104. TreeView1.SelectedNode.Text);
  105.  
  106. ComboBoxCustomer.Items.Add("0 - BASESITE");
  107. if (partners != null)
  108. {
  109. foreach (string partner in partners)
  110. {
  111. ComboBoxCustomer.Items.Add(partner);
  112. }
  113. }
  114. ComboBoxCustomer.SelectedIndex = 0;
  115. }
  116.  
  117. private void btnSearch_Click(object sender, EventArgs e)
  118. {
  119. treeViewSearchInfo.Nodes.Clear();
  120. listViewItinerary.Items.Clear();
  121. listViewRowInfo.Items.Clear();
  122.  
  123. mainSearchThread = new Thread(new ThreadStart(DoSearch));
  124. mainSearchThread.Start();
  125.  
  126. }
  127. //ListViewItem chosenItem = new ListViewItem();
  128. //chosenItem = listViewItinerary.SelectedItems[0];
  129.  
  130.  
  131. private void DoSearch()
  132. {
  133. UpdateButton(false);
  134. UpdateProgressBar(true);
  135.  
  136. Thread progressBarThread = new Thread(new ThreadStart(RunProgressBar));
  137. progressBarThread.Start();
  138.  
  139. string connectionString = "Server=" + hostName + ";Database=" + databaseName + ";User ID=" + userName + "; Password=" + passWord + ";";
  140.  
  141. string[] ageOfChildrenString = txtAgeOfChildren.Text.Split(',');
  142. decimal child;
  143. decimal[] ageChildren;
  144. if (ageOfChildrenString.All(number => Decimal.TryParse(number, out child)));
  145. {
  146. ageChildren = Array.ConvertAll<string, decimal>(ageOfChildrenString, Convert.ToDecimal);
  147. }
  148.  
  149. ConfigurationManager.DatabaseConnectionString = connectionString;
  150. PartnerConfig partnerConfig = new PartnerConfig(partnerId,true);
  151.  
  152. AirSearchParameter airParam = new AirSearchParameter();
  153.  
  154. airParam.FromCity = txtFrom.Text;
  155. airParam.ToCity = txtTo.Text;
  156. airParam.DepartureDate = DateTime.Parse(datePickerDeparture.Text);
  157. airParam.ReturnDate = DateTime.Parse(datePickerArrival.Text);
  158. airParam.Currency = txtCurrency.Text;
  159. airParam.Adults = Convert.ToInt32(NumericAdult.Value);
  160. airParam.NonAdultAges = ageChildren;
  161. //airParam.NonAdultAges = txtNrOfChildren.Text.Split(',');
  162. airParam.OneWay = chkOneWay.Checked;
  163. airParam.PreferredCarriers = txtPrefCarrier.Text.Split(',');
  164. airParam.ExcludedCarriers = txtExclCarrier.Text.Split(',');
  165. airParam.RestrictToCarriers = txtRestrCarriers.Text.Split(',');
  166. airParam.PartnerConfig = partnerConfig;
  167.  
  168. try
  169. {
  170. List<Itineraries> itins = BookingEngine.GetAirFaresInterface(airParam);
  171. foreach (Itinerary itinerary in itins[0])
  172. {
  173. ListViewItem item = new ListViewItem(itinerary.Id.ToString()); //ItineraryID
  174. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.CRS.ToString()));
  175. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.MainCarrier));
  176. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.BaseFarePerAdult.ToString()));
  177. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.TaxPerAdult.ToString()));
  178. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult).ToString()));
  179. //Nåt verkar vara fel med uträkningen.
  180. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult +
  181. itinerary.Pricing.BaseFareAddonPerAdult + itinerary.Pricing.TaxAddonPerAdult).ToString()));
  182. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Subject));
  183. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Message));
  184. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.IpAddress));
  185. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Url));
  186. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.ExceptionId.ToString()));
  187. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.BrowserId.ToString()));
  188.  
  189. //listViewItinerary.Items.Add(item);
  190. UpdateListView(item);
  191. //firstItin = itinerary.Id; //id
  192. }
  193. int searchCount = 0;
  194.  
  195.  
  196. //progressBar1.Maximum = itins[0].searchInfo.Count;
  197. foreach (SearchInfo searchInfo in itins[0].searchInfo)
  198. {
  199. List<TreeNode> nodes = new List<TreeNode>();
  200. searchCount += 1;
  201. //progressBar1.Value += 1;
  202. nodes.Add(new TreeNode("CRSName: " + searchInfo.CRStype.ToString()));
  203. nodes.Add(new TreeNode("Search Time: " + searchInfo.SearchTime));
  204. nodes.Add(new TreeNode("Itinerary Count: " + searchInfo.ItineraryCount));
  205. nodes.Add(new TreeNode("SearchInfo: " + searchInfo.MiscSearchInfo));
  206. nodes.Add(new TreeNode("Exception: " + searchInfo.ExceptionMessage));
  207.  
  208. TreeNode node = new TreeNode("Search " + searchCount, nodes.ToArray());
  209. UpdateTreeView(node);
  210. }
  211.  
  212. //Read blackbox
  213. foreach (nu.mrorange.util.log.BlackBoxEntry entry in airParam.PartnerConfig.BlackBox.GetCopyOfEntries())
  214. {
  215. listBoxBlackboxOutput.Items.Add(entry.ToString());
  216. //partnerConfig.BlackBox.Add(listBoxBlackboxOutput.ToString());
  217. //listBoxBlackboxOutput.Add(partnerConfig.BlackBox.ToString());
  218.  
  219.  
  220. //entry.ToString();
  221. //Textbox.add(entry.ToString()));
  222. // en
  223. // //Timestamp
  224.  
  225. }
  226. }
  227.  
  228. catch (Exception ex)
  229. {
  230. //DisplayNameAttribute error Message.
  231. MessageBox.Show(ex.Message);
  232. //Console.Write(ex.StackTrace);
  233. }
  234. finally
  235. {
  236. UpdateButton(true);
  237. UpdateProgressBar(false);
  238. progressBarThread.Abort();
  239. }
  240. }
  241.  
  242. void ReadBlackBox(BlackBoxEntry item)
  243. {
  244. if (InvokeRequired)
  245. {
  246. this.Invoke((MethodInvoker)delegate()
  247. {
  248. BlackBoxEntry(item);
  249. });
  250. return;
  251. }
  252. listBoxBlackboxOutput.Items.Add(item).ToString();
  253. }
  254.  
  255. private void BlackBoxEntry(BlackBoxEntry item)
  256. {
  257. throw new NotImplementedException();
  258. }
  259.  
  260. private void RunProgressBar()
  261. {
  262. while (true)
  263. {
  264. if (progressBar1.Value == progressBar1.Maximum)
  265. {
  266. SetValueProgressBar(0);
  267. }
  268. SetValueProgressBar(progressBar1.Value + 1);
  269.  
  270. Thread.Sleep(200);
  271. }
  272. }
  273.  
  274. void UpdateListView(ListViewItem item)
  275. {
  276. if (InvokeRequired)
  277. {
  278. this.Invoke((MethodInvoker)delegate() {
  279. UpdateListView(item);
  280. });
  281. return;
  282. }
  283. listViewItinerary.Items.Add(item).ToString();
  284. }
  285.  
  286. void UpdateTreeView(TreeNode item)
  287. {
  288. if (InvokeRequired)
  289. {
  290. this.Invoke((MethodInvoker)delegate()
  291. {
  292. UpdateTreeView(item);
  293. });
  294. return;
  295. }
  296. treeViewSearchInfo.Nodes.Add(item);
  297. }
  298.  
  299. void UpdateButton(bool enable)
  300. {
  301. if (InvokeRequired)
  302. {
  303. this.Invoke((MethodInvoker)delegate()
  304. {
  305. UpdateButton(enable);
  306. });
  307. return;
  308. }
  309.  
  310. btnSearch.Enabled = enable;
  311. }
  312.  
  313. void UpdateProgressBar(bool enable)
  314. {
  315. if (InvokeRequired)
  316. {
  317. this.Invoke((MethodInvoker)delegate()
  318. {
  319. UpdateProgressBar(enable);
  320. });
  321. return;
  322. }
  323.  
  324. progressBar1.Visible = enable;
  325. }
  326.  
  327. void SetValueProgressBar(int value)
  328. {
  329. if (InvokeRequired)
  330. {
  331. this.Invoke((MethodInvoker)delegate()
  332. {
  333. SetValueProgressBar(value);
  334. });
  335. return;
  336. }
  337.  
  338. progressBar1.Value = value;
  339. }
  340.  
  341. private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
  342. {
  343. btnSearch.Enabled = true;
  344. }
  345.  
  346. private void ComboBoxCustomer_SelectedIndexChanged(object sender, EventArgs e)
  347. {
  348. partnerId = int.Parse(ComboBoxCustomer.Text.Substring(0, 3).Replace("-", "").Trim());
  349. }
  350.  
  351. private void datePickerArrival_ValueChanged(object sender, EventArgs e)
  352. {
  353.  
  354. }
  355. private void listViewItinerary_SelectedIndexChanged(object sender, EventArgs e)
  356. {
  357. listViewRowInfo.Items.Clear();
  358. PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  359.  
  360. {
  361. foreach (ListViewItem item in listViewItinerary.Items)
  362. {
  363. if (item.Selected == true)
  364. {
  365. int itineraryid = int.Parse(item.SubItems[0].Text);
  366.  
  367. Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
  368. foreach (Segment seg in itinerary.Segments)
  369. {
  370. ListViewItem item2 = new ListViewItem(seg.Id.ToString()); //ItineraryID
  371.  
  372. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime1.ToString("hh:mm")));
  373. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime2.ToString("hh:mm")));
  374. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City2.ToString()));
  375. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City1.ToString()));
  376. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.Carrier + "-" + seg.FlightNumber.ToString()));
  377. listViewRowInfo.Items.Add(item2);
  378. }
  379. }
  380. }
  381. }
  382. }
  383.  
  384. private void txtTo_TextChanged(object sender, EventArgs e)
  385. {
  386.  
  387. }
  388. }
  389. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement