public static StatisticList GetStatistics(int packageID) { StatisticList statList = new StatisticList(); SortedDictionary <string, string> customerList = new SortedDictionary <string, string>(); SAPEventAttendeeAgencyMapReadWrite eventTrip = new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName); #region get statistic using (SAPDataReaderEventAttendeeAgencyMap rdrTrip = eventTrip.ReaderSelectByPackageID(packageID)) { if (rdrTrip.DataReader != null && rdrTrip.DataReader.HasRows) { SAPFlightTrip flightTrip = new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword); while (rdrTrip.DataReader.Read()) { if (flightTrip.GetList( rdrTrip.CustomerNumber.Trim(), rdrTrip.AgencyNumber.Trim())) { BAPISTRDAT[] _bapiFlightTripList = flightTrip._bapiFlightTripList; foreach (BAPISTRDAT _bapiFlightTrip in _bapiFlightTripList) { if (_bapiFlightTrip.TRIPNUMBER != rdrTrip.TripNumber.Trim()) { continue; } statList.AdultAgeStat += _bapiFlightTrip.NUMADULT; statList.ChildAgeStat += _bapiFlightTrip.NUMCHILD; statList.InfantAgeStat += _bapiFlightTrip.NUMINFANT; switch (_bapiFlightTrip.CLASS) { case "Y": statList.FirstClassStat++; break; case "C": statList.BusinessClassStat++; break; case "F": statList.EconomyClassStat++; break; } } } }// while (rdrTrip.DataReader.Read()); } } #endregion return(statList); }
private void buttonTicket_Click(object sender, RibbonControlEventArgs e) { PseudoProgressForm progress = new PseudoProgressForm(); progress.ProgressLabel = "Querying SAP..."; BackgroundWorker backgroundWorker = new BackgroundWorker(); TicketSales ticketDataset = new TicketSales(); backgroundWorker.DoWork += delegate(object workSender, DoWorkEventArgs eventArg) { TicketSales.TicketSaleDataTable ticketSaleDataTable = ticketDataset.TicketSale; SAPEventAttendeeAgencyMapReadWrite attendeeAgency = new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName); SAPRefTravelAgencyReadWrite travelAgency = new SAPRefTravelAgencyReadWrite(Config._dbConnectionName); //get all agencies where client booked flights to Dictionary <string, string> agencyList = new Dictionary <string, string>(); using (SAPDataReaderEventAttendeeAgencyMap reader = attendeeAgency.ReaderSelectAll()) { if (reader.DataReader.HasRows) { while (reader.DataReader.Read()) { if (!agencyList.ContainsKey(reader.AgencyNumber)) { string agencyName = string.Empty; using (SAPDataReaderRefTravelAgency travelReader = travelAgency.ReaderSelectByAgencyNumber(reader.AgencyNumber)) { travelReader.DataReader.Read(); agencyName = travelReader.AgencyName; } agencyList.Add( reader.AgencyNumber, agencyName); } } } } SAPFlightTrip flightTripHelper = new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword); SAPFlightConnection flightConnectionHelper = new SAPFlightConnection(Config.SAPUserName, Config.SAPPassword); foreach (KeyValuePair <string, string> agency in agencyList) { TicketSales.TicketSaleRow ticketSaleRow = ticketSaleDataTable.NewTicketSaleRow(); ticketSaleRow.AgencyName = agency.Value; ticketSaleRow.TicketsSold = 0; ticketSaleRow.TotalTicketPrice = 0; flightTripHelper.GetList(string.Empty, agency.Key); foreach (SAPServices.SAP_FLIGHTTRIPLIST.BAPISTRDAT flightTrip in flightTripHelper._bapiFlightTripList) { flightConnectionHelper.GetDetail( flightTrip.FLCONN1, flightTrip.FLDATE1, string.Empty, flightTrip.AGENCYNUM); ticketSaleRow.TicketsSold += 1; ticketSaleRow.TotalTicketPrice += flightConnectionHelper._bapiPrice.PRICE_BUS1; } ticketSaleDataTable.AddTicketSaleRow(ticketSaleRow); } }; backgroundWorker.RunWorkerCompleted += delegate(object workSender, RunWorkerCompletedEventArgs eventArg) { progress.Close(); progress.Dispose(); ExcelHelper.LoadExcelSheet( "TicketSalesDistribution", Resources.TicketSalesDistribution, ticketDataset); }; backgroundWorker.RunWorkerAsync(); progress.ShowDialog(); }
public static StatisticList GetStatistics(int packageID) { StatisticList statList = new StatisticList(); SortedDictionary <string, int> locationCount = new SortedDictionary <string, int>(); SortedDictionary <string, string> customerList = new SortedDictionary <string, string>(); SAPEventAttendeeAgencyMapReadWrite eventTrip = new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName); SAPEventAttendeeReadWrite eventAttendee = new SAPEventAttendeeReadWrite(Config._dbConnectionName); #region get customer list first SAPCustomer sapCustomer = new SAPCustomer(Config.SAPUserName, Config.SAPPassword); if (sapCustomer.GetList()) { foreach (SAPServices.SAP_FLIGHTCUSTOMERLIST.BAPISCUDAT customerItem in sapCustomer._customerList) { if (!customerList.ContainsKey(customerItem.CUSTOMERID)) { customerList.Add( customerItem.CUSTOMERID, customerItem.CITY); } } } #endregion #region get statistic using (SAPDataReaderEventAttendeeAgencyMap rdrTrip = eventTrip.ReaderSelectByPackageID(packageID)) { if (rdrTrip.DataReader != null && rdrTrip.DataReader.HasRows) { SAPFlightTrip flightTrip = new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword); while (rdrTrip.DataReader.Read()) { if (flightTrip.GetList( rdrTrip.CustomerNumber.Trim(), rdrTrip.AgencyNumber.Trim())) { SAPServices.SAP_FLIGHTTRIPLIST.BAPISTRDAT[] _bapiFlightTripList = flightTrip._bapiFlightTripList; foreach (SAPServices.SAP_FLIGHTTRIPLIST.BAPISTRDAT _bapiFlightTrip in _bapiFlightTripList) { if (_bapiFlightTrip.TRIPNUMBER != rdrTrip.TripNumber.Trim()) { continue; } statList.AdultAgeStat += _bapiFlightTrip.NUMADULT; statList.ChildAgeStat += _bapiFlightTrip.NUMCHILD; statList.InfantAgeStat += _bapiFlightTrip.NUMINFANT; switch (_bapiFlightTrip.CLASS) { case "Y": statList.FirstClassStat++; break; case "C": statList.BusinessClassStat++; break; case "F": statList.EconomyClassStat++; break; } } } } //while (rdrTrip.DataReader.Read()); } } #endregion using (SAPDataReaderEventAttendee rdrEventAttendee = eventAttendee.ReaderSelectByPackageID(packageID)) { if (rdrEventAttendee.DataReader != null && rdrEventAttendee.DataReader.HasRows) { while (rdrEventAttendee.DataReader.Read()) { //location demographics if (customerList.ContainsKey(rdrEventAttendee.CustomerNumber.Trim())) { string location = customerList[rdrEventAttendee.CustomerNumber.Trim()].ToUpper(); if (locationCount.ContainsKey(location)) { locationCount[location]++; } else { locationCount.Add(location, 1); } } } //while (rdrEventAttendee.DataReader.Read()); } } Population populate = null; if (locationCount.Count > 0) { populate = new Population(); Population.PopulationTableDataTable dt = populate.PopulationTable; foreach (KeyValuePair <string, int> kvp in locationCount) { dt.AddPopulationTableRow( kvp.Key, kvp.Value); } } statList.LocationStat = populate; return(statList); }