private void AddFlightNodes(TreeNode root, DataView dataView) { if (dataView.Count > 0) { foreach (DataRowView view in dataView) { PackageInfo.FlightRow packageInfoFlightRow = view.Row as PackageInfo.FlightRow; string airportNodeKey = string.Format("From: {0}, {1}", packageInfoFlightRow.AirportFrom, packageInfoFlightRow.CityFrom); int airportIndex = root.Nodes.IndexOfKey(airportNodeKey); TreeNode airportNode; if (airportIndex == -1) { airportNode = root.Nodes.Add(airportNodeKey, airportNodeKey); airportNode.ImageIndex = 7; airportNode.SelectedImageIndex = 7; } else { airportNode = root.Nodes[airportIndex]; } if (!airportNode.Nodes.ContainsKey(packageInfoFlightRow.FlightDate)) { int seatsFree = 0; switch (root.Text) { case "Gold": seatsFree = packageInfoFlightRow.FirstFree; break; case "Silver": seatsFree = packageInfoFlightRow.BusinessFree; break; case "Bronze": seatsFree = packageInfoFlightRow.EconomyFree; break; } TreeNode flightNode = airportNode.Nodes.Add(packageInfoFlightRow.FlightDate, string.Format("[Seats: {0:000}], {1}", seatsFree, packageInfoFlightRow.FlightDate)); flightNode.ImageIndex = 6; flightNode.SelectedImageIndex = 6; flightNode.ToolTipText = string.Format("Airline: {0}", packageInfoFlightRow.Airline); } } } else { root.Parent.Tag = null; root.Nodes.Add("[No Available Flights]"); } }
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); }