public static PackageInfo GetPackageInfo() { PackageInfo packageInfoDataset = new PackageInfo(); PackageInfo.PackageDataTable packageInfoPackageDataTable = packageInfoDataset.Package; PackageInfo.EventDataTable packageInfoEventDataTable = packageInfoDataset.Event; PackageInfo.FlightDataTable packageInfoFlightDataTable = packageInfoDataset.Flight; SAPPackageReadWrite package = new SAPPackageReadWrite(Config._dbConnectionName); SAPEventReadWrite events = new SAPEventReadWrite(Config._dbConnectionName); SAPVenueReadWrite venue = new SAPVenueReadWrite(Config._dbConnectionName); SAPPackageEventMapReadWrite packageEventMap = new SAPPackageEventMapReadWrite(Config._dbConnectionName); SAPFlight flightHelper = new SAPFlight( Config.SAPUserName, Config.SAPPassword); SAPDataSetPackage packageDataset = package.SelectAll(); foreach (SAPDataSetPackage.PackageRow packageRow in packageDataset.Package.Rows) { PackageInfo.PackageRow packageInfoPackageRow = packageInfoPackageDataTable.AddPackageRow( packageRow.PackageID, packageRow.PackageName, packageRow.PackageDescription); SAPDataSetPackageEventMap packageEventMapDataset = packageEventMap.SelectByPackageID(packageRow.PackageID); foreach (SAPDataSetPackageEventMap.PackageEventMapRow packageEventMapRow in packageEventMapDataset.PackageEventMap.Rows) { SAPDataSetEvent eventDataset = events.SelectByEventID(packageEventMapRow.EventID); foreach (SAPDataSetEvent.EventRow eventRow in eventDataset.Event.Rows) { PackageInfo.EventRow packageInfoEventRow = packageInfoEventDataTable.AddEventRow( eventRow.EventID, packageInfoPackageRow, eventRow.EventName, eventRow.EventDescription, eventRow.EventDate.ToString(), eventRow.VenueName, 0, 0, 0); string venueCity = string.Empty; using (SAPDataReaderVenue venueReader = venue.ReaderSelectByVenueID(eventRow.VenueID)) { if (venueReader.DataReader.HasRows) { venueReader.DataReader.Read(); venueCity = venueReader.VenueCity.ToUpper(); } } if (venueCity != string.Empty) { flightHelper.GetList(string.Empty, venueCity); foreach (SAPServices.SAP_FLIGHTLIST.BAPISFLDAT flight in flightHelper._flightList) { //flight dates should be between today and before the event date if (Convert.ToDateTime(flight.FLIGHTDATE) > DateTime.Today && Convert.ToDateTime(flight.FLIGHTDATE) < eventRow.EventDate) { flightHelper.CheckAvailability(flight.AIRLINEID, flight.CONNECTID, flight.FLIGHTDATE); PackageInfo.FlightRow packageInfoFlightRow = packageInfoFlightDataTable.AddFlightRow( packageInfoEventRow, flight.AIRLINE, flight.FLIGHTDATE, flight.DEPTIME, flight.AIRPORTFR, flight.CITYFROM, flight.AIRPORTTO, flight.CITYTO, flight.ARRDATE, flight.ARRTIME, flightHelper._availability.FIRSTFREE, flightHelper._availability.BUSINFREE, flightHelper._availability.ECONOFREE); packageInfoEventRow.GoldAvailability += flightHelper._availability.FIRSTFREE; packageInfoEventRow.SilverAvailability += flightHelper._availability.BUSINFREE; packageInfoEventRow.BronzeAvailability += flightHelper._availability.ECONOFREE; } } } } } } return(packageInfoDataset); }
private void RefreshData(string agencyNumber) { PseudoProgressForm _pseudoProgress = new PseudoProgressForm(); _pseudoProgress.ProgressLabel = "Querying SAP..."; BackgroundWorker background = new BackgroundWorker(); background.DoWork += delegate(object sender, DoWorkEventArgs e) { if (agencyNumber == "0") { packageInfo = DataHelper.GetPackageInfo(); } else { packageInfo = DataHelper.GetPackageInfo(agencyNumber); } DataView flightView = packageInfo.Flight.DefaultView; _trees.Clear(); foreach (PackageInfo.PackageRow packageInfoPackageRow in packageInfo.Package.Rows) { TreeNode packageRoot = new TreeNode(packageInfoPackageRow.PackageName); packageRoot.ToolTipText = packageInfoPackageRow.PackageDescription; packageRoot.Tag = string.Format("P:{0}:{1}", packageInfoPackageRow.PackageID, 0); packageRoot.ImageIndex = 1; packageRoot.SelectedImageIndex = 1; foreach (DataRow eventDataRow in packageInfoPackageRow.GetChildRows("Package_Event")) { PackageInfo.EventRow packageInfoEventRow = eventDataRow as PackageInfo.EventRow; TreeNode eventRoot = packageRoot.Nodes.Add(packageInfoEventRow.EventName); eventRoot.ToolTipText = string.Format("Description: {0}\nVenue: {1}", packageInfoEventRow.EventDescription, packageInfoEventRow.VenueName); eventRoot.Tag = string.Format("E:{0}:{1}", packageInfoEventRow.PackageID, packageInfoEventRow.EventID); eventRoot.ImageIndex = 2; eventRoot.SelectedImageIndex = 2; TreeNode goldNode = eventRoot.Nodes.Add("Gold"); goldNode.ImageIndex = 3; goldNode.SelectedImageIndex = 3; flightView.RowFilter = string.Format("EventID = {0} AND FirstFree > 0", packageInfoEventRow.EventID); AddFlightNodes(goldNode, flightView); TreeNode silverNode = eventRoot.Nodes.Add("Silver"); silverNode.ImageIndex = 4; silverNode.SelectedImageIndex = 4; flightView.RowFilter = string.Format("EventID = {0} AND BusinessFree > 0", packageInfoEventRow.EventID); AddFlightNodes(silverNode, flightView); TreeNode bronzeNode = eventRoot.Nodes.Add("Bronze"); bronzeNode.ImageIndex = 5; bronzeNode.SelectedImageIndex = 5; flightView.RowFilter = string.Format("EventID = {0} AND EconomyFree > 0", packageInfoEventRow.EventID); AddFlightNodes(bronzeNode, flightView); } _trees.Add(packageRoot); } }; background.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e) { if (_trees.Count > 0) { treeViewPackages.Nodes.Clear(); treeViewPackages.Nodes.AddRange(_trees.ToArray()); } _pseudoProgress.Close(); }; background.RunWorkerAsync(); _pseudoProgress.ShowDialog(this); }