Advertisement
Guest User

Untitled

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