Advertisement
Guest User

Untitled

a guest
May 15th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.23 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. treeViewSearchInfo.Nodes.Clear();
  116. listViewItinerary.Items.Clear();
  117. listViewRowInfo.Items.Clear();
  118.  
  119. mainSearchThread = new Thread(new ThreadStart(DoSearch));
  120. mainSearchThread.Start();
  121.  
  122. }
  123.  
  124. private void DoSearch()
  125. {
  126. UpdateButton(false);
  127. string connectionString = "Server=" + hostName + ";Database=" + databaseName + ";User ID=" + userName + "; Password=" + passWord + ";";
  128.  
  129. string[] ageOfChildrenString = txtAgeOfChildren.Text.Split(',');
  130. decimal child;
  131. decimal[] ageChildren;
  132. if (ageOfChildrenString.All(number => Decimal.TryParse(number, out child)));
  133. {
  134. ageChildren = Array.ConvertAll<string, decimal>(ageOfChildrenString, Convert.ToDecimal);
  135. }
  136.  
  137. ConfigurationManager.DatabaseConnectionString = connectionString;
  138. PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  139.  
  140. AirSearchParameter airParam = new AirSearchParameter();
  141.  
  142. airParam.FromCity = txtFrom.Text;
  143. airParam.ToCity = txtTo.Text;
  144. airParam.DepartureDate = DateTime.Parse(datePickerDeparture.Text);
  145. airParam.ReturnDate = DateTime.Parse(datePickerArrival.Text);
  146. airParam.Currency = txtCurrency.Text;
  147. airParam.Adults = Convert.ToInt32(NumericAdult.Value);
  148. airParam.NonAdultAges = ageChildren;
  149. //airParam.NonAdultAges = txtNrOfChildren.Text.Split(',');
  150. airParam.OneWay = chkOneWay.Checked;
  151. airParam.PreferredCarriers = txtPrefCarrier.Text.Split(',');
  152. airParam.ExcludedCarriers = txtExclCarrier.Text.Split(',');
  153. airParam.RestrictToCarriers = txtRestrCarriers.Text.Split(',');
  154. airParam.PartnerConfig = partnerConfig;
  155.  
  156. try
  157. {
  158. List<Itineraries> itins = BookingEngine.GetAirFaresInterface(airParam);
  159. foreach (Itinerary itinerary in itins[0])
  160. {
  161. ListViewItem item = new ListViewItem(itinerary.Id.ToString()); //ItineraryID
  162. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.CRS.ToString()));
  163. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.MainCarrier));
  164. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.BaseFarePerAdult.ToString()));
  165. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.TaxPerAdult.ToString()));
  166. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult).ToString()));
  167. //Nåt verkar vara fel med uträkningen.
  168. item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult + itinerary.Pricing.AddonPricePerAdult).ToString()));
  169. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Subject));
  170. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Message));
  171. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.IpAddress));
  172. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.Url));
  173. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.ExceptionId.ToString()));
  174. //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, ev.BrowserId.ToString()));
  175.  
  176. //listViewItinerary.Items.Add(item);
  177. UpdateListView(item);
  178. //firstItin = itinerary.Id; //id
  179. }
  180. int searchCount = 0;
  181.  
  182. List<TreeNode> nodes = new List<TreeNode>();
  183. foreach (SearchInfo searchInfo in itins[0].searchInfo)
  184. {
  185. searchCount += 1;
  186. nodes.Add(new TreeNode("CRSName: " + searchInfo.CRStype.ToString()));
  187. nodes.Add(new TreeNode("Search Time: " + searchInfo.SearchTime));
  188. nodes.Add(new TreeNode("Itinerary Count: " + searchInfo.ItineraryCount));
  189. nodes.Add(new TreeNode("Exception: " + searchInfo.ExceptionMessage));
  190. TreeNode node = new TreeNode("Search " + searchCount, nodes.ToArray());
  191. UpdateTreeView(node);
  192. }
  193. }
  194. catch (Exception ex)
  195. {
  196. //DisplayNameAttribute error Message.
  197. MessageBox.Show(ex.Message);
  198. //Console.Write(ex.StackTrace);
  199. }
  200. finally
  201. {
  202. UpdateButton(true);
  203. }
  204. //listViewItinerary.Items.Clear(); //test
  205. }
  206.  
  207. void UpdateListView(ListViewItem item)
  208. {
  209. if (InvokeRequired)
  210. {
  211. this.Invoke((MethodInvoker)delegate() {
  212. UpdateListView(item);
  213. });
  214. return;
  215. }
  216. listViewItinerary.Items.Add(item).ToString();
  217. }
  218.  
  219. void UpdateTreeView(TreeNode item)
  220. {
  221. if (InvokeRequired)
  222. {
  223. this.Invoke((MethodInvoker)delegate()
  224. {
  225. UpdateTreeView(item);
  226. });
  227. return;
  228. }
  229. treeViewSearchInfo.Nodes.Add(item);
  230. }
  231.  
  232. void UpdateButton(bool enable)
  233. {
  234. if (InvokeRequired)
  235. {
  236. this.Invoke((MethodInvoker)delegate()
  237. {
  238. UpdateButton(enable);
  239. });
  240. return;
  241. }
  242.  
  243. btnSearch.Enabled = enable;
  244. }
  245.  
  246.  
  247.  
  248. private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
  249. {
  250. btnSearch.Enabled = true;
  251. }
  252.  
  253. private void ComboBoxCustomer_SelectedIndexChanged(object sender, EventArgs e)
  254. {
  255. partnerId = int.Parse(ComboBoxCustomer.Text.Substring(0, 3).Replace("-", "").Trim());
  256. }
  257.  
  258. private void datePickerArrival_ValueChanged(object sender, EventArgs e)
  259. {
  260.  
  261. }
  262. private void listViewItinerary_SelectedIndexChanged(object sender, EventArgs e)
  263. {
  264. listViewRowInfo.Items.Clear();
  265. PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  266.  
  267. {
  268. foreach (ListViewItem item in listViewItinerary.Items)
  269. {
  270. if (item.Selected == true)
  271. {
  272. int itineraryid = int.Parse(item.SubItems[0].Text);
  273. Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
  274. foreach (Segment seg in itinerary.Segments)
  275. {
  276. ListViewItem item2 = new ListViewItem(seg.Id.ToString()); //ItineraryID
  277.  
  278. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime1.ToString("hh:mm")));
  279. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime2.ToString("hh:mm")));
  280. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City2.ToString()));
  281. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City1.ToString()));
  282. item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.Carrier + "-" + seg.FlightNumber.ToString()));
  283. listViewRowInfo.Items.Add(item2);
  284.  
  285. }
  286. }
  287. }
  288. }
  289. }
  290.  
  291. private void txtTo_TextChanged(object sender, EventArgs e)
  292. {
  293.  
  294. }
  295. }
  296. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement