private void buttonFlightList_Click(object sender, RibbonControlEventArgs e) { PseudoProgressForm progress = new PseudoProgressForm(); progress.ProgressLabel = "Querying SAP..."; BackgroundWorker backgroundWorker = new BackgroundWorker(); Flights flightDataset = new Flights(); backgroundWorker.DoWork += delegate(object workSender, DoWorkEventArgs eventArg) { SAPFlight flightHelper = new SAPFlight(Config.SAPUserName, Config.SAPPassword); flightHelper.GetList(); Flights.FlightDataTable flightTable = flightDataset.Flight; foreach (SAPServices.SAP_FLIGHTLIST.BAPISFLDAT flight in flightHelper._flightList) { DateTime flDate = Convert.ToDateTime(flight.FLIGHTDATE); if (flDate > DateTime.Today) { flightHelper.CheckAvailability(flight.AIRLINEID, flight.CONNECTID, flight.FLIGHTDATE); flight.FLIGHTDATE = flDate.ToShortDateString(); flightTable.AddFlightRow( flight.AIRLINE, flight.CITYFROM, flight.CITYTO, flight.AIRPORTFR, flight.AIRPORTTO, flight.FLIGHTDATE, flight.DEPTIME, flight.ARRDATE, flight.ARRTIME, flightHelper._availability.FIRSTFREE, flightHelper._availability.BUSINFREE, flightHelper._availability.ECONOFREE); } } }; backgroundWorker.RunWorkerCompleted += delegate(object workSender, RunWorkerCompletedEventArgs eventArg) { progress.Close(); ExcelHelper.LoadExcelSheet("ListOfFlights", Resources.ListOfFlights, flightDataset); }; backgroundWorker.RunWorkerAsync(); progress.ShowDialog(); }
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); }