Example #1
0
        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);
        }