Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Xml.Serialization;
- using System.IO;
- using nu.mrorange;
- using nu.mrorange.config;
- using nu.mrorange.search;
- using nu.mrorange.crs;
- using System.Drawing;
- using System.Threading;
- using nu.mrorange.util.log;
- using System.Diagnostics;
- namespace MrOSearchApp2
- {
- public partial class Form1 : Form
- {
- TextWriter _writer = null;
- private string hostName = "", databaseName = "", userName = "sa", passWord = "homermad!";
- int partnerId = -1;
- Thread mainSearchThread;
- public Form1()
- {
- InitializeComponent();
- _writer = new TextBoxStreamWriter(textBox1);
- Console.SetOut(_writer);
- btnSearch.Enabled = false;
- datePickerDeparture.Value = DateTime.Now.AddDays(7);
- datePickerArrival.Value = DateTime.Now.AddDays(14);
- txtTo.Text = "STO";
- txtFrom.Text = "PAR";
- Server[] servers = GetServers();
- int serverCount = 0;
- foreach (Server server in servers)
- {
- passWord = server.passWord;
- string[] databases;
- try
- {
- databases = Database.GetDatabases(server.IpAddress, server.user, server.passWord);
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, ex.Message);
- return;
- }
- List<TreeNode> nodes = new List<TreeNode>();
- foreach (string database in databases)
- {
- if (
- !database.Contains("avail") &&
- !database.Contains("common") &&
- database != "information_schema" &&
- database != "test" &&
- database != "innodb_status" &&
- database != "mysql")
- nodes.Add(new TreeNode(database));
- }
- if (nodes.Count == 0)
- nodes.Add(new TreeNode("No databases!"));
- TreeNode node = new TreeNode(server.Name, nodes.ToArray());
- node.Name = server.IpAddress;
- TreeView1.Nodes.Add(node);
- serverCount++;
- }
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- _writer = new TextBoxStreamWriter(textBox1);
- Console.SetOut(_writer);
- }
- /// <summary>
- /// Gets the servers.
- /// </summary>
- /// <returns>An array with servers[]</returns>
- private static Server[] GetServers()
- {
- XmlSerializer serializer = new XmlSerializer(typeof(List<Server>));
- StreamReader sr = new StreamReader("Servers.xml");
- List<Server> servers = (List<Server>)serializer.Deserialize(sr);
- return servers.ToArray();
- }
- /// <summary>
- /// Handles the DoubleClick event of the TreeView1 control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
- private void TreeView1_DoubleClick(object sender, EventArgs e)
- {
- ComboBoxCustomer.Items.Clear();
- databaseName = TreeView1.SelectedNode.Text;
- hostName = TreeView1.SelectedNode.Parent.Name;
- FillPartnerDropdown();
- }
- /// <summary>
- /// Fills the partner dropdown.
- /// </summary>
- private void FillPartnerDropdown()
- {
- ComboBoxCustomer.Items.Clear();
- string[] partners = Database.GetPartners(
- TreeView1.SelectedNode.Parent.Name,
- "sa",
- "homermad!",
- TreeView1.SelectedNode.Text);
- ComboBoxCustomer.Items.Add("0 - BASESITE");
- if (partners != null)
- {
- foreach (string partner in partners)
- {
- ComboBoxCustomer.Items.Add(partner);
- }
- }
- ComboBoxCustomer.SelectedIndex = 0;
- }
- /// <summary>
- /// Handles the Click event of the btnSearch control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
- private void btnSearch_Click(object sender, EventArgs e)
- {
- treeViewSearchInfo.Nodes.Clear();
- listViewItinerary.Items.Clear();
- listViewRowInfo.Items.Clear();
- mainSearchThread = new Thread(new ThreadStart(DoSearch));
- mainSearchThread.Start();
- }
- /// <summary>
- /// Does the search.
- /// </summary>
- private void DoSearch()
- {
- UpdateButton(false);
- UpdateProgressBar(true);
- Thread progressBarThread = new Thread(new ThreadStart(RunProgressBar));
- progressBarThread.Start();
- string connectionString = "Server=" + hostName + ";Database=" + databaseName + ";User ID=" + userName + "; Password=" + passWord + ";";
- string[] ageOfChildrenString = txtAgeOfChildren.Text.Split(',');
- decimal child;
- decimal[] ageChildren;
- if (ageOfChildrenString.All(number => Decimal.TryParse(number, out child)));
- {
- ageChildren = Array.ConvertAll<string, decimal>(ageOfChildrenString, Convert.ToDecimal);
- }
- ConfigurationManager.DatabaseConnectionString = connectionString;
- PartnerConfig partnerConfig = new PartnerConfig(partnerId,true);
- AirSearchParameter airParam = new AirSearchParameter();
- airParam.FromCity = txtFrom.Text;
- airParam.ToCity = txtTo.Text;
- airParam.DepartureDate = DateTime.Parse(datePickerDeparture.Text);
- airParam.ReturnDate = DateTime.Parse(datePickerArrival.Text);
- airParam.Currency = txtCurrency.Text;
- airParam.Adults = Convert.ToInt32(NumericAdult.Value);
- airParam.NonAdultAges = ageChildren;
- airParam.OneWay = chkOneWay.Checked;
- airParam.PreferredCarriers = txtPrefCarrier.Text.Split(',');
- airParam.ExcludedCarriers = txtExclCarrier.Text.Split(',');
- airParam.RestrictToCarriers = txtRestrCarriers.Text.Split(',');
- airParam.PartnerConfig = partnerConfig;
- try
- {
- List<Itineraries> itins = BookingEngine.GetAirFaresInterface(airParam);
- foreach (Itinerary itinerary in itins[0])
- {
- ListViewItem item = new ListViewItem(itinerary.Id.ToString()); //ItineraryID
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.CRS.ToString()));
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.MainCarrier));
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.BaseFarePerAdult.ToString()));
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, itinerary.Pricing.TaxPerAdult.ToString()));
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult).ToString()));
- item.SubItems.Add(new ListViewItem.ListViewSubItem(item, (itinerary.Pricing.BaseFarePerAdult + itinerary.Pricing.TaxPerAdult +
- itinerary.Pricing.BaseFareAddonPerAdult + itinerary.Pricing.TaxAddonPerAdult).ToString()));
- UpdateListView(item);
- }
- int searchCount = 0;
- foreach (SearchInfo searchInfo in itins[0].searchInfo)
- {
- List<TreeNode> nodes = new List<TreeNode>();
- searchCount += 1;
- nodes.Add(new TreeNode("CRSName: " + searchInfo.CRStype.ToString()));
- nodes.Add(new TreeNode("Search Time: " + searchInfo.SearchTime));
- nodes.Add(new TreeNode("Itinerary Count: " + searchInfo.ItineraryCount));
- nodes.Add(new TreeNode("SearchInfo: " + searchInfo.MiscSearchInfo));
- nodes.Add(new TreeNode("Exception: " + searchInfo.ExceptionMessage));
- TreeNode node = new TreeNode("Search " + searchCount, nodes.ToArray());
- UpdateTreeView(node);
- }
- //Read blackbox
- foreach (nu.mrorange.util.log.BlackBoxEntry entry in airParam.PartnerConfig.BlackBox.GetCopyOfEntries())
- {
- SetBlackBox(entry);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- finally
- {
- UpdateButton(true);
- UpdateProgressBar(false);
- progressBarThread.Abort();
- }
- }
- /// <summary>
- /// Checks if BlackBoxEntry is null or not
- /// </summary>
- /// <param name="item">The item.</param>
- /// <returns></returns>
- private BlackBoxEntry BlackBoxEntry(BlackBoxEntry item)
- {
- if (item != null)
- {
- return item;
- }
- return null;
- }
- /// <summary>
- /// Sets the black box.
- /// </summary>
- /// <param name="item">The item.</param>
- void SetBlackBox(BlackBoxEntry item)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate()
- {
- SetBlackBox(item);
- });
- return;
- }
- listBoxBlackboxOutput.Items.Add(item.ToString());
- }
- /// <summary>
- /// Runs the progress bar.
- /// </summary>
- private void RunProgressBar()
- {
- while (true)
- {
- if (progressBar1.Value == progressBar1.Maximum)
- {
- SetValueProgressBar(0);
- }
- SetValueProgressBar(progressBar1.Value + 1);
- Thread.Sleep(200);
- }
- }
- /// <summary>
- /// Updates the list view.
- /// </summary>
- /// <param name="item">The item.</param>
- void UpdateListView(ListViewItem item)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate() {
- UpdateListView(item);
- });
- return;
- }
- listViewItinerary.Items.Add(item).ToString();
- }
- /// <summary>
- /// Updates the tree view.
- /// </summary>
- /// <param name="item">The item.</param>
- void UpdateTreeView(TreeNode item)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate()
- {
- UpdateTreeView(item);
- });
- return;
- }
- treeViewSearchInfo.Nodes.Add(item);
- }
- /// <summary>
- /// Updates the button.
- /// </summary>
- /// <param name="enable">if set to <c>true</c> [enable].</param>
- void UpdateButton(bool enable)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate()
- {
- UpdateButton(enable);
- });
- return;
- }
- btnSearch.Enabled = enable;
- }
- /// <summary>
- /// Updates the progress bar.
- /// </summary>
- /// <param name="enable">if set to <c>true</c> [enable].</param>
- void UpdateProgressBar(bool enable)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate()
- {
- UpdateProgressBar(enable);
- });
- return;
- }
- progressBar1.Visible = enable;
- }
- /// <summary>
- /// Sets the value of the progress bar.
- /// </summary>
- /// <param name="value">The value.</param>
- void SetValueProgressBar(int value)
- {
- if (InvokeRequired)
- {
- this.Invoke((MethodInvoker)delegate()
- {
- SetValueProgressBar(value);
- });
- return;
- }
- progressBar1.Value = value;
- }
- /// <summary>
- /// Handles the AfterSelect event of the TreeView1 control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.Windows.Forms.TreeViewEventArgs"/> instance containing the event data.</param>
- private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
- {
- btnSearch.Enabled = true;
- }
- /// <summary>
- /// Handles the SelectedIndexChanged event of the ComboBoxCustomer control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
- private void ComboBoxCustomer_SelectedIndexChanged(object sender, EventArgs e)
- {
- partnerId = int.Parse(ComboBoxCustomer.Text.Substring(0, 3).Replace("-", "").Trim());
- }
- /// <summary>
- /// Handles the SelectedIndexChanged event of the listViewItinerary control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
- private void listViewItinerary_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (listViewItinerary.SelectedItems.Count > 0)
- toolStripMenuItem1.Enabled = true;
- else
- toolStripMenuItem1.Enabled = false;
- listViewRowInfo.Items.Clear();
- PartnerConfig partnerConfig = new PartnerConfig(partnerId);
- {
- foreach (ListViewItem item in listViewItinerary.Items)
- {
- if (item.Selected == true)
- {
- int itineraryid = int.Parse(item.SubItems[0].Text);
- Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
- foreach (Segment seg in itinerary.Segments)
- {
- ListViewItem item2 = new ListViewItem(seg.Id.ToString()); //ItineraryID
- item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime1.ToString("hh:mm")));
- item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.DateTime2.ToString("hh:mm")));
- item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City2.ToString()));
- item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.City1.ToString()));
- item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, seg.Carrier + "-" + seg.FlightNumber.ToString()));
- listViewRowInfo.Items.Add(item2);
- }
- }
- }
- }
- }
- /// <summary>
- /// ContextMenu called when right clicked on an item in listViewItinerary.
- /// </summary>
- /// <param name="sender">The sender.</param>
- /// <param name="e">The <see cref="System.Windows.Forms.MouseEventArgs"/> instance containing the event data.</param>
- void OnEventListView_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Right)
- {
- listViewItinerary.ContextMenu.Show(listViewItinerary, new Point(e.X, e.Y));
- }
- }
- /// <summary>
- /// Handles the Click event of the toolStripMenuItem1 control. Generates a pop p window to show.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
- void toolStripMenuItem1_Click(object sender, EventArgs e)
- {
- PartnerConfig partnerConfig = new PartnerConfig(partnerId);
- int itineraryid = int.Parse(listViewItinerary.SelectedItems[0].SubItems[0].Text);
- Itinerary itinerary = nu.mrorange.BookingEngine.GetItinerary(itineraryid, partnerConfig);
- if (listViewItinerary.SelectedItems.Count > 0)
- {
- FormPopUp popUp = new FormPopUp(itinerary);
- popUp.ShowDialog(this);
- }
- }
- }
- }
- public class TextBoxStreamWriter : TextWriter
- {
- TextBox _output = null;
- public TextBoxStreamWriter(TextBox output)
- {
- _output = output;
- }
- /// <summary>
- /// Writes a character to the text stream.
- /// </summary>
- /// <param name="value">The character to write to the text stream.</param>
- /// <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
- /// <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- public override void Write(char value)
- {
- MethodInvoker action = delegate { _output.AppendText(value.ToString()); };
- _output.BeginInvoke(action);
- }
- /// <summary>
- /// When overridden in a derived class, returns the <see cref="T:System.Text.Encoding"/> in which the output is written.
- /// </summary>
- /// <value></value>
- /// <returns>The Encoding in which the output is written.</returns>
- public override Encoding Encoding
- {
- get { return System.Text.Encoding.UTF8; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement