Advertisement
Guest User

Untitled

a guest
May 15th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.31 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.                 progBar.Maximum = itins[0].searchInfo.count;
  184.                 foreach (SearchInfo searchInfo in itins[0].searchInfo)
  185.                 {
  186.                     searchCount += 1;
  187.                     progBar.Value += 1;
  188.                     nodes.Add(new TreeNode("CRSName: " + searchInfo.CRStype.ToString()));
  189.                     nodes.Add(new TreeNode("Search Time: " + searchInfo.SearchTime));
  190.                     nodes.Add(new TreeNode("Itinerary Count: " + searchInfo.ItineraryCount));
  191.                     nodes.Add(new TreeNode("Exception: " + searchInfo.ExceptionMessage));
  192.                     TreeNode node = new TreeNode("Search " + searchCount, nodes.ToArray());
  193.                     UpdateTreeView(node);
  194.                 }
  195.             }
  196.             catch (Exception ex)
  197.             {
  198.                 //DisplayNameAttribute error Message.
  199.                 MessageBox.Show(ex.Message);
  200.                 //Console.Write(ex.StackTrace);
  201.             }
  202.             finally
  203.             {
  204.                 UpdateButton(true);
  205.             }
  206.             //listViewItinerary.Items.Clear(); //test
  207.         }
  208.  
  209.         void UpdateListView(ListViewItem item)
  210.         {
  211.             if (InvokeRequired)
  212.             {
  213.                 this.Invoke((MethodInvoker)delegate() {
  214.                     UpdateListView(item);
  215.                 });
  216.                 return;
  217.             }
  218.             listViewItinerary.Items.Add(item).ToString();
  219.         }
  220.  
  221.         void UpdateTreeView(TreeNode item)
  222.         {
  223.             if (InvokeRequired)
  224.             {
  225.                 this.Invoke((MethodInvoker)delegate()
  226.                 {
  227.                     UpdateTreeView(item);
  228.                 });
  229.                 return;
  230.             }
  231.             treeViewSearchInfo.Nodes.Add(item);
  232.         }
  233.  
  234.         void UpdateButton(bool enable)
  235.         {
  236.             if (InvokeRequired)
  237.             {
  238.                 this.Invoke((MethodInvoker)delegate()
  239.                 {
  240.                     UpdateButton(enable);
  241.                 });
  242.                 return;
  243.             }
  244.  
  245.             btnSearch.Enabled = enable;
  246.         }
  247.  
  248.  
  249.  
  250.         private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
  251.         {
  252.             btnSearch.Enabled = true;
  253.         }
  254.  
  255.         private void ComboBoxCustomer_SelectedIndexChanged(object sender, EventArgs e)
  256.         {
  257.             partnerId = int.Parse(ComboBoxCustomer.Text.Substring(0, 3).Replace("-", "").Trim());
  258.         }
  259.  
  260.         private void datePickerArrival_ValueChanged(object sender, EventArgs e)
  261.         {
  262.  
  263.         }
  264.         private void listViewItinerary_SelectedIndexChanged(object sender, EventArgs e)
  265.         {
  266.             listViewRowInfo.Items.Clear();
  267.             PartnerConfig partnerConfig = new PartnerConfig(partnerId);
  268.    
  269.             {
  270.                 foreach (ListViewItem item in listViewItinerary.Items)
  271.                 {
  272.                     if (item.Selected == true)
  273.                     {
  274.                         int itineraryid = int.Parse(item.SubItems[0].Text);
  275.                         Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
  276.                         foreach (Segment seg in itinerary.Segments)
  277.                         {
  278.                             ListViewItem item2 = new ListViewItem(seg.Id.ToString()); //ItineraryID
  279.  
  280.                             item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime1.ToString("hh:mm")));
  281.                             item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime2.ToString("hh:mm")));
  282.                             item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City2.ToString()));
  283.                             item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City1.ToString()));
  284.                             item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.Carrier + "-" + seg.FlightNumber.ToString()));
  285.                             listViewRowInfo.Items.Add(item2);
  286.  
  287.                         }                      
  288.                     }
  289.                 }
  290.             }
  291.         }
  292.  
  293.         private void txtTo_TextChanged(object sender, EventArgs e)
  294.         {
  295.  
  296.         }
  297.     }
  298. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement