private void GetEventList()
        {
            _sourceEventList = new List <AssociatedEventList>();
            SAPEventReadWrite eventRW =
                new SAPEventReadWrite(Config._dbConnectionName);

            using (SAPDataReaderEvent readerEvent =
                       eventRW.ReaderSelectAll())
            {
                if (readerEvent.DataReader != null &&
                    readerEvent.DataReader.HasRows)
                {
                    while (readerEvent.DataReader.Read())
                    {
                        AssociatedEventList item = new AssociatedEventList();
                        item.EventID          = readerEvent.EventID;
                        item.EventName        = readerEvent.EventName;
                        item.EventDate        = readerEvent.EventDate;
                        item.EventGoldPrice   = readerEvent.GoldPackagePrice;
                        item.EventSilverPrice = readerEvent.SilverPackagePrice;
                        item.EventBronzePrice = readerEvent.BronzePackagePrice;
                        item.EventVenue       = readerEvent.VenueName;
                        _sourceEventList.Add(item);
                    } //while (readerEvent.DataReader.Read());
                }
            }

            comboBoxName.DataSource    = _sourceEventList;
            comboBoxName.DisplayMember = "EventName";
            comboBoxName.ValueMember   = "EventID";
        }
Пример #2
0
 private AssociatedEventList GetItem(int eventID)
 {
     if (_eventList == null)
     {
         _eventList = new Dictionary <int, AssociatedEventList>();
         SAPEventReadWrite eventRW =
             new SAPEventReadWrite(Config._dbConnectionName);
         using (SAPDataReaderEvent readerEvent =
                    eventRW.ReaderSelectAll())
         {
             if (readerEvent.DataReader != null &&
                 readerEvent.DataReader.HasRows)
             {
                 while (readerEvent.DataReader.Read())
                 {
                     AssociatedEventList item = new AssociatedEventList();
                     item.EventID          = readerEvent.EventID;
                     item.EventName        = readerEvent.EventName;
                     item.EventGoldPrice   = readerEvent.GoldPackagePrice;
                     item.EventSilverPrice = readerEvent.SilverPackagePrice;
                     item.EventBronzePrice = readerEvent.BronzePackagePrice;
                     _eventList.Add(item.EventID, item);
                 } //while (readerEvent.DataReader.Read());
             }
         }
     }
     if (_eventList.ContainsKey(eventID))
     {
         return(_eventList[eventID]);
     }
     return(null);
 }
        private void PopulateEvents()
        {
            SAPEventReadWrite mEvent =
                new SAPEventReadWrite(Config._dbConnectionName);

            _eventData = mEvent.SelectAll();
        }
Пример #4
0
        public static bool AreEventsOutdated()
        {
            SAPEventReadWrite eventRW = new SAPEventReadWrite(Config._dbConnectionName);

            SAPDataSetEvent eventDataSet = eventRW.SelectAll();

            SAPDataSetEvent.EventRow[] eventRows = (SAPDataSetEvent.EventRow[])
                                                   eventDataSet.Event.Select("EventDate >'" + DateTime.Now + "'");

            if (eventRows.Length > 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        private DateTime[] GetEventSchedules()
        {
            SAPEventReadWrite mEvent =
                new SAPEventReadWrite(Config._dbConnectionName);

            DateTime[] schedules =
                new DateTime[_eventData.Event.Rows.Count];

            int i = 0;

            foreach (SAPDataSetEvent.EventRow row in _eventData.Event.Rows)
            {
                schedules[i] = row.EventDate;
                i++;
            }

            return(schedules);
        }
Пример #6
0
        private void buttonDelete_Click(object sender, EventArgs e)
        {
            if (_eventCurrentIndex >= 0)
            {
                if (_sourceEvents.Count > 0)
                {
                    EventList deletedEvent =
                        _sourceEvents[_eventCurrentIndex];
                    if (deletedEvent.EventDeleteTag)
                    {
                        return;
                    }

                    SAPPackageEventMapReadWrite eventMapRW =
                        new SAPPackageEventMapReadWrite(Config._dbConnectionName);

                    if (eventMapRW.SelectByEventID(
                            deletedEvent.EventID).PackageEventMap.Rows.Count > 0)
                    {
                        Message.DisplayMessage("Unable to delete. " +
                                               "Event is currently associated with a package.");
                        return;
                    }

                    if (Message.DeleteMessage(
                            deletedEvent.EventName) == DialogResult.Yes)
                    {
                        SAPEventReadWrite eventRW =
                            new SAPEventReadWrite(Config._dbConnectionName);
                        eventRW.Delete(deletedEvent.EventID);
                        _sourceEvents.RemoveAt(_eventCurrentIndex);
                        dataGridViewEvent.RowCount = _sourceEvents.Count;
                    }
                }
            }
        }
        private void VenueForm_Load(object sender, EventArgs e)
        {
            #region create grid
            SAPEventReadWrite eventRW =
                new SAPEventReadWrite(Config._dbConnectionName);
            SAPVenueReadWrite venueRW =
                new SAPVenueReadWrite(Config._dbConnectionName);
            _dtVenue = new DataTable();
            //_dtVenue.Columns.Add("EditIco", typeof(byte[]));
            //_dtVenue.Columns.Add("DelIco", typeof(byte[]));
            _dtVenue.Columns.Add("VenueID", typeof(int));
            _dtVenue.Columns.Add("VenueName", typeof(string));
            _dtVenue.Columns.Add("VenueDescription", typeof(string));
            _dtVenue.Columns.Add("VenueStreet", typeof(string));
            _dtVenue.Columns.Add("VenueCity", typeof(string));
            _dtVenue.Columns.Add("VenueState", typeof(string));
            _dtVenue.Columns.Add("VenuePostalCode", typeof(string));
            _dtVenue.Columns.Add("VenueGeographicMap", typeof(byte[]));
            _dtVenue.Columns.Add("VenueFacilityMap", typeof(byte[]));
            _dtVenue.Columns.Add("VenueImage", typeof(byte[]));
            _dtVenue.Columns.Add("EditTag", typeof(bool));
            _dtVenue.Columns.Add("DelTag", typeof(bool));

            //byte[] editIco = UtilityHelper.BitmapToByte(Resources.icoedit);
            //byte[] delIco = UtilityHelper.BitmapToByte(Resources.icodelete);
            //byte[] editDisableIco = UtilityHelper.BitmapToByte(Resources.icoedit_disabled);
            //byte[] delDisableIco = UtilityHelper.BitmapToByte(Resources.icodelete_disabled);

            bool editAble = false;
            bool delAble  = false;

            List <int> usedVenue = new List <int>();
            using (SAPDataReaderEvent rdrEvent =
                       eventRW.ReaderSelectAll())
            {
                if (rdrEvent.DataReader != null &&
                    rdrEvent.DataReader.HasRows)
                {
                    while (rdrEvent.DataReader.Read())
                    {
                        usedVenue.Add(rdrEvent.VenueID);
                    } //while (rdrEvent.DataReader.Read());
                }
            }

            using (SAPDataReaderVenue rdrVenue =
                       venueRW.ReaderSelectAll())
            {
                if (rdrVenue.DataReader != null &&
                    rdrVenue.DataReader.HasRows)
                {
                    while (rdrVenue.DataReader.Read())
                    {
                        //byte[] editImage = editIco;
                        //byte[] delImage = delIco;


                        bool tag = usedVenue.Contains(rdrVenue.VenueID);
                        delAble  = !tag;
                        editAble = !tag;

                        _dtVenue.Rows.Add(
                            //editImage,
                            //delImage,
                            rdrVenue.VenueID,
                            rdrVenue.VenueName,
                            rdrVenue.VenueDescription,
                            rdrVenue.VenueStreet,
                            rdrVenue.VenueCity,
                            rdrVenue.VenueState,
                            rdrVenue.VenuePostalCode,
                            rdrVenue.VenueGeographicMap,
                            rdrVenue.VenueFacilityMap,
                            rdrVenue.VenueImage,
                            editAble,
                            delAble);
                    } //while (rdrVenue.DataReader.Read());
                }
            }

            dataGridViewVenue.DataSource = _dtVenue;
            #endregion

            #region utilize grid
            GridHelper.HideColumns(
                dataGridViewVenue,
                SAPVenueReadWrite._venueIDColumnName,
                SAPVenueReadWrite._venueDescriptionColumnName,
                SAPVenueReadWrite._venueGeographicMapColumnName,
                SAPVenueReadWrite._venueFacilityMapColumnName,
                SAPVenueReadWrite._venueImageColumnName,
                "EditTag",
                "DelTag");
            string[] columns = new string[]
            {
                //"EditIco",
                //"DelIco",
                SAPVenueReadWrite._venueNameColumnName,
                SAPVenueReadWrite._venueStreetColumnName,
                SAPVenueReadWrite._venueCityColumnName,
                SAPVenueReadWrite._venueStateColumnName,
                SAPVenueReadWrite._venuePostalCodeColumnName
            };
            string[] titles = new string[]
            {
                //"",
                //"",
                "Venue",
                "Street",
                "City",
                "State",
                "Postal Code"
            };
            int[] gridWidth = new int[]
            {
                //20,
                //20,
                200,
                100,
                100,
                100,
                100
            };
            GridHelper.SetColumnTitle(
                dataGridViewVenue,
                columns,
                titles);
            GridHelper.SetWidthColumn(
                dataGridViewVenue,
                columns,
                gridWidth);
            #endregion

            mode = EnumFormMode.ViewMode;
            UtilityHelper.SetToReadOnly(Controls);

            if (_isChildForm)
            {
                mode = EnumFormMode.CallbackAdd;
                buttonAddSave.Text        = "Save";
                buttonCancel.Text         = "Cancel";
                dataGridViewVenue.Enabled = false;
                UtilityHelper.ClearTextbox(Controls);
                UtilityHelper.EnableControls(Controls);
            }
        }
Пример #8
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);
        }
Пример #9
0
        public static Sales GetSalesData(int month, int year)
        {
            Sales salesDataset = new Sales();

            Sales.PackageDataTable     salesPackageDataTable     = salesDataset.Package;
            Sales.PackageSaleDataTable salesPackageSaleDataTable = salesDataset.PackageSale;

            Sales.EventDataTable     salesEventDataTable     = salesDataset.Event;
            Sales.EventSaleDataTable salesEventSaleDataTable = salesDataset.EventSale;

            Sales.FlightDataTable salesFlightDataTable = salesDataset.Flight;

            SAPPackageReadWrite package =
                new SAPPackageReadWrite(Config._dbConnectionName);

            SAPEventAttendeeReadWrite attendee =
                new SAPEventAttendeeReadWrite(Config._dbConnectionName);

            SAPEventAttendeeAgencyMapReadWrite eventAttendeeAgencyMap =
                new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName);

            SAPPackageEventMapReadWrite packageEventMap =
                new SAPPackageEventMapReadWrite(Config._dbConnectionName);

            SAPEventReadWrite events =
                new SAPEventReadWrite(Config._dbConnectionName);

            SAPFlightTrip flightTripHelper =
                new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword);

            SAPFlightConnection flightConnectionHelper =
                new SAPFlightConnection(Config.SAPUserName, Config.SAPPassword);

            //fetch all packages
            SAPDataSetPackage packageDataset = package.SelectAll();

            //iterate through the packages
            foreach (SAPDataSetPackage.PackageRow packageRow in packageDataset.Package.Rows)
            {
                Sales.PackageRow salesPackageRow =
                    salesPackageDataTable.AddPackageRow(packageRow.PackageID, packageRow.PackageName);

                SAPDataSetEventAttendee attendeeDataset =
                    attendee.SelectByPackageID(packageRow.PackageID);

                SAPDataSetPackageEventMap packageEventMapDataset =
                    packageEventMap.SelectByPackageID(packageRow.PackageID);

                foreach (SAPDataSetEventAttendee.EventAttendeeRow eventAttendeeRow in attendeeDataset.EventAttendee.Rows)
                {
                    if ((eventAttendeeRow.Created.Month == month || month == 0) &&
                        (eventAttendeeRow.Created.Year == year || year == 0))
                    {
                        //build temp package table
                        Sales.PackageSaleRow salesPackageSaleRow =
                            salesPackageSaleDataTable.AddPackageSaleRow(
                                salesPackageRow,
                                eventAttendeeRow.EventAttendeeID,
                                eventAttendeeRow.Created,
                                eventAttendeeRow.DateOfBirth,
                                eventAttendeeRow.CustomerNumber,
                                0,
                                0);

                        SAPDataSetEventAttendeeAgencyMap eventAttendeeAgencyMapDataset =
                            eventAttendeeAgencyMap.SelectByEventAttendeeID(eventAttendeeRow.EventAttendeeID);

                        for (int i = 0; i < packageEventMapDataset.PackageEventMap.Rows.Count; i++)
                        {
                            SAPDataSetPackageEventMap.PackageEventMapRow packageEventMapRow =
                                packageEventMapDataset.PackageEventMap.Rows[i] as
                                SAPDataSetPackageEventMap.PackageEventMapRow;

                            SAPDataSetEvent eventDataset =
                                events.SelectByEventID(packageEventMapRow.EventID);

                            SAPDataSetEvent.EventRow eventRow = eventDataset.Event[0];

                            //assumes same record position as to event, need to revise!!!
                            //SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow eventAttendeeAgencyMapRow =
                            //    eventAttendeeAgencyMapDataset.EventAttendeeAgencyMap.Rows[i] as
                            //    SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow;

                            DataRow[] eventAttendeeAgencyMapDataRow =
                                eventAttendeeAgencyMapDataset.EventAttendeeAgencyMap.Select("EventID = " +
                                                                                            packageEventMapRow.EventID);

                            SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow eventAttendeeAgencyMapRow =
                                eventAttendeeAgencyMapDataRow[0] as
                                SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow;

                            Sales.EventRow salesEventRow = salesEventDataTable.FindByEventID(eventRow.EventID);
                            if (salesEventRow == null)
                            {
                                salesEventRow = salesEventDataTable.AddEventRow(
                                    eventRow.EventID,
                                    eventRow.EventName,
                                    eventRow.GoldPackagePrice,
                                    eventRow.SilverPackagePrice,
                                    eventRow.BronzePackagePrice,
                                    eventRow.GoldPackageTrueCost,
                                    eventRow.SilverPackageTrueCost,
                                    eventRow.BronzePackageTrueCost);
                            }

                            salesEventSaleDataTable.AddEventSaleRow(
                                salesEventRow,
                                packageRow.PackageID,
                                eventAttendeeRow.EventAttendeeID,
                                eventAttendeeAgencyMapRow.AgencyNumber,
                                eventAttendeeAgencyMapRow.TripNumber,
                                string.Empty,
                                0,
                                0);
                        }
                    }
                }
            }

            foreach (Sales.PackageSaleRow salesPackageSalesRow in salesPackageSaleDataTable.Rows)
            {
                foreach (DataRow row in salesPackageSalesRow.GetChildRows("PackageSale_EventSale"))
                {
                    Sales.EventSaleRow salesEventSaleRow = row as Sales.EventSaleRow;

                    flightTripHelper.GetList(
                        salesPackageSalesRow.CustomerNumber.Trim(),
                        salesEventSaleRow.AgencyNumber);

                    foreach (SAPServices.SAP_FLIGHTTRIPLIST.BAPISTRDAT trip in flightTripHelper._bapiFlightTripList)
                    {
                        if (salesEventSaleRow.TripNumber == trip.TRIPNUMBER)
                        {
                            flightConnectionHelper.GetDetail(
                                trip.FLCONN1,
                                trip.FLDATE1,
                                string.Empty,
                                salesEventSaleRow.AgencyNumber);

                            Sales.EventRow salesEventRow =
                                salesEventDataTable.FindByEventID(salesEventSaleRow.EventID);

                            decimal ticketPrice = 0;
                            switch (trip.CLASS)
                            {
                            case "F":
                                salesEventSaleRow.Cost        = salesEventRow.GoldPackageCost;
                                salesEventSaleRow.Price       = salesEventRow.GoldPackagePrice;
                                salesEventSaleRow.PackageType = "Gold";
                                ticketPrice =
                                    trip.NUMADULT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_FST1
                                            :
                                    trip.NUMCHILD == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_FST2
                                            :
                                    trip.NUMINFANT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_FST3
                                            : 0;
                                break;

                            case "C":
                                salesEventSaleRow.Cost        = salesEventRow.SilverPackageCost;
                                salesEventSaleRow.Price       = salesEventRow.SilverPackagePrice;
                                salesEventSaleRow.PackageType = "Silver";
                                ticketPrice =
                                    trip.NUMADULT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_BUS1
                                            :
                                    trip.NUMCHILD == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_BUS2
                                            :
                                    trip.NUMINFANT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_BUS3
                                            : 0;
                                break;

                            case "Y":
                                salesEventSaleRow.Cost        = salesEventRow.BronzePackageCost;
                                salesEventSaleRow.Price       = salesEventRow.BronzePackagePrice;
                                salesEventSaleRow.PackageType = "Bronze";
                                ticketPrice =
                                    trip.NUMADULT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_ECO1
                                            :
                                    trip.NUMCHILD == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_ECO2
                                            :
                                    trip.NUMINFANT == 1
                                            ? flightConnectionHelper._bapiPrice.PRICE_ECO3
                                            : 0;
                                break;
                            }

                            salesPackageSalesRow.Cost  += salesEventSaleRow.Cost;
                            salesPackageSalesRow.Price += salesEventSaleRow.Price;

                            salesFlightDataTable.AddFlightRow(
                                salesEventSaleRow,
                                trip.FLCONN1,
                                trip.FLDATE1,
                                trip.CLASS,
                                ticketPrice,
                                trip.NUMADULT,
                                trip.NUMCHILD,
                                trip.NUMINFANT);
                        }
                    }
                }
            }
            return(salesDataset);
        }
        private void frmEvent_Load(object sender, EventArgs e)
        {
            #region Initialize Venue Combobox
            SAPVenueReadWrite venue =
                new SAPVenueReadWrite(Config._dbConnectionName);
            comboBoxVenue.DataSource    = venue.SelectAll().Venue;
            comboBoxVenue.DisplayMember =
                SAPVenueReadWrite._venueNameColumnName;
            comboBoxVenue.ValueMember =
                SAPVenueReadWrite._venueIDColumnName;

            #endregion

            #region Get Event Types
            SAPEventTypeReadWrite eventTypeRW =
                new SAPEventTypeReadWrite(Config._dbConnectionName);
            SAPDataSetEventType.EventTypeDataTable dtEventType =
                eventTypeRW.SelectAll().EventType;

            comboBoxEventType.DataSource    = dtEventType;
            comboBoxEventType.DisplayMember = SAPEventTypeReadWrite._eventTypeNameColumnName;
            comboBoxEventType.ValueMember   = SAPEventTypeReadWrite._eventTypeIDColumnName;

            SAPEventActorReadWrite actors =
                new SAPEventActorReadWrite(Config._dbConnectionName);
            comboBoxActor.DataSource    = actors.SelectAll().EventActor;
            comboBoxActor.DisplayMember =
                SAPEventActorReadWrite._eventActorNameColumnName;
            comboBoxActor.ValueMember =
                SAPEventActorReadWrite._eventActorIDColumnName;
            #endregion

            #region Initialize Event Package Grid

            dataGridViewPackage.VirtualMode = true;

            DataGridViewTextBoxColumn columnPackageType =
                new DataGridViewTextBoxColumn();
            columnPackageType.HeaderText = "Name";
            columnPackageType.Name       = "ColumnName";
            columnPackageType.Width      = 70;
            columnPackageType.ReadOnly   = true;
            columnPackageType.Frozen     = true;
            columnPackageType.DefaultCellStyle.BackColor =
                Color.FromKnownColor(KnownColor.Control);
            columnPackageType.SortMode =
                DataGridViewColumnSortMode.NotSortable;
            dataGridViewPackage.Columns.Add(columnPackageType);

            DataGridViewTextBoxColumn columnPrice =
                new DataGridViewTextBoxColumn();
            columnPrice.HeaderText = "Price";
            columnPrice.Name       = "ColumnPrice";
            columnPrice.Width      = 85;
            columnPrice.DefaultCellStyle.Format    = "c";
            columnPrice.DefaultCellStyle.Alignment =
                DataGridViewContentAlignment.BottomRight;
            columnPrice.SortMode =
                DataGridViewColumnSortMode.NotSortable;
            dataGridViewPackage.Columns.Add(columnPrice);

            DataGridViewTextBoxColumn columnCost =
                new DataGridViewTextBoxColumn();
            columnCost.HeaderText = "Cost";
            columnCost.Name       = "ColumnCost";
            columnCost.Width      = 85;
            columnCost.DefaultCellStyle.Format    = "c";
            columnCost.DefaultCellStyle.Alignment =
                DataGridViewContentAlignment.BottomRight;
            columnCost.SortMode =
                DataGridViewColumnSortMode.NotSortable;
            dataGridViewPackage.Columns.Add(columnCost);

            SAPActorEventReadOnly actorEvent =
                new SAPActorEventReadOnly(Config._dbConnectionName);
            DataTable dtEventActor = new DataTable();
            dtEventActor.Columns.Add("ActorName", typeof(string));
            dtEventActor.Columns.Add("ActorID", typeof(string));
            if (_eventID > 0)
            {
                using (SAPDataReaderActorEvent rdrActorEvent =
                           actorEvent.ReaderSelectByEventID(_eventID))
                {
                    if (rdrActorEvent.DataReader != null &&
                        rdrActorEvent.DataReader.HasRows)
                    {
                        while (rdrActorEvent.DataReader.Read())
                        {
                            dtEventActor.Rows.Add(
                                rdrActorEvent.EventActorName,
                                rdrActorEvent.EventActorID);
                        } //while (rdrActorEvent.DataReader.Read());
                    }
                }
            }
            dsEventActor = new DataSet();
            dsEventActor.Tables.Add(dtEventActor);
            dataGridViewActor.DataSource = dsEventActor.Tables[0];

            #endregion

            #region Populate Values
            openFileDialog.FileName = string.Empty;
            _packageTypeList        = new List <PackageTypeList>();
            if (_eventID > 0)
            {
                SAPEventReadWrite eventRW =
                    new SAPEventReadWrite(Config._dbConnectionName);

                using (SAPDataReaderEvent rdrEvent =
                           eventRW.ReaderSelectByEventID(_eventID))
                {
                    rdrEvent.DataReader.Read();
                    textBoxName.Text             = rdrEvent.EventName;
                    textBoxDescription.Text      = rdrEvent.EventDescription;
                    dateTimePickerSchedule.Value = rdrEvent.EventDate;
                    comboBoxEventType.Text       = rdrEvent.EventTypeName;
                    comboBoxVenue.Text           = rdrEvent.VenueName;
                    monthCalendarSchedule.SetDate(rdrEvent.EventDate);
                    _packageTypeList.Add(
                        new PackageTypeList(
                            "Gold",
                            rdrEvent.GoldPackagePrice,
                            rdrEvent.GoldPackageTrueCost));
                    _packageTypeList.Add(
                        new PackageTypeList(
                            "Silver",
                            rdrEvent.SilverPackagePrice,
                            rdrEvent.SilverPackageTrueCost));
                    _packageTypeList.Add(
                        new PackageTypeList(
                            "Bronze",
                            rdrEvent.BronzePackagePrice,
                            rdrEvent.BronzePackageTrueCost));
                    _previousImage = rdrEvent.EventPhoto;
                    using (MemoryStream ms =
                               new MemoryStream(rdrEvent.EventPhoto, 0, rdrEvent.EventPhoto.Length))
                    {
                        ms.Write(rdrEvent.EventPhoto, 0, rdrEvent.EventPhoto.Length);
                        pictureBoxPoster.Image = Image.FromStream(ms, true);
                    }
                }
            }
            else
            {
                _packageTypeList.Add(new PackageTypeList("Gold", 0, 0));
                _packageTypeList.Add(new PackageTypeList("Silver", 0, 0));
                _packageTypeList.Add(new PackageTypeList("Bronze", 0, 0));
            }
            if (_isReadOnly)
            {
                UtilityHelper.SetToReadOnly(Controls);
                buttonSave.Enabled           = false;
                dataGridViewPackage.ReadOnly = true;
                GridHelper.HideColumns(
                    dataGridViewActor,
                    "ColumnActorID",
                    "ColumnDelete");
                buttonAddToList.Enabled    = false;
                pictureBoxNewVenue.Enabled = false;
            }

            pictureBoxNewVenue.Image = Resources.iconew;

            dataGridViewPackage.RowCount = _packageTypeList.Count;
            #endregion
        }
        private void buttonSave_Click(object sender, EventArgs e)
        {
            string eventName   = comboBoxEventType.Text.Trim();
            int    eventTypeID = 0;
            int    eventID     = _eventID;
            bool   hasNoError  = true;
            bool   isSuccess   = false;

            errorProvider.Clear();


            #region get price/cost

            DateTime eventSchedule =
                new DateTime(
                    monthCalendarSchedule.SelectionEnd.Year,
                    monthCalendarSchedule.SelectionEnd.Month,
                    monthCalendarSchedule.SelectionEnd.Day,
                    dateTimePickerSchedule.Value.Hour,
                    dateTimePickerSchedule.Value.Minute,
                    dateTimePickerSchedule.Value.Second);

            decimal goldPackageCost =
                Convert.ToDecimal(_packageTypeList[0].PackageCost);
            decimal silverPackageCost =
                Convert.ToDecimal(_packageTypeList[1].PackageCost);
            decimal bronzePackageCost =
                Convert.ToDecimal(_packageTypeList[2].PackageCost);

            decimal totalPackageCost =
                goldPackageCost + silverPackageCost + bronzePackageCost;
            #endregion

            _eventList = new EventList();

            #region check image file
            string fileName  = openFileDialog.FileName;
            byte[] byteImage = null;

            if (File.Exists(fileName))
            {
                FileInfo imageFile = new FileInfo(fileName);

                using (FileStream fs = new FileStream(
                           fileName,
                           FileMode.Open,
                           FileAccess.Read,
                           FileShare.Read))
                {
                    int fileSize = Convert.ToInt32(imageFile.Length);
                    byteImage = new byte[fileSize];
                    int bytesRead = fs.Read(
                        byteImage,
                        0,
                        fileSize);
                    fs.Close();
                }
            }
            else if (_eventID > 0)
            {
                byteImage = _previousImage;
            }
            else
            {
                byteImage = UtilityHelper.BitmapToByte(Resources.blank);
            }

            #endregion

            if (byteImage == null)
            {
                errorProvider.SetError(pictureBoxPoster, "Poster is required.");
                hasNoError = false;
            }

            if (eventName.Length == 0)
            {
                errorProvider.SetError(comboBoxEventType, "Event Type is required.");
                hasNoError = false;
            }

            if (textBoxName.Text.Trim().Length == 0)
            {
                errorProvider.SetError(textBoxName, "Event name is required.");
                hasNoError = false;
            }

            if (textBoxDescription.Text.Trim().Length == 0)
            {
                errorProvider.SetError(textBoxDescription, "Event description is required.");
                hasNoError = false;
            }

            if (!hasNoError)
            {
                return;
            }

            try
            {
                SAPEventTypeReadWrite eventType =
                    new SAPEventTypeReadWrite(Config._dbConnectionName);
                SAPDataSetEventType.EventTypeDataTable dtEventType
                    = eventType.SelectByEventTypeName(eventName).EventType;
                if (dtEventType.Rows.Count > 0)
                {
                    eventTypeID =
                        ((SAPDataSetEventType.EventTypeRow)dtEventType.Rows[0]).EventTypeID;
                }

                if (eventTypeID == 0)
                {
                    eventType.Insert(
                        eventName,
                        eventName,
                        out eventTypeID);
                }

                using (SWPTransactionDBConnection dbTransaction =
                           new SWPTransactionDBConnection(Config._dbConnectionName))
                {
                    try
                    {
                        SAPEventReadWrite mEvent =
                            new SAPEventReadWrite(dbTransaction);
                        SAPEventActorReadWrite eventActor =
                            new SAPEventActorReadWrite(dbTransaction);
                        SAPEventActorMapReadWrite eventActorMap =
                            new SAPEventActorMapReadWrite(dbTransaction);
                        if (_eventID == 0)
                        {
                            mEvent.Insert(
                                Convert.ToInt32(comboBoxVenue.SelectedValue),
                                eventTypeID,
                                textBoxName.Text,
                                textBoxDescription.Text,
                                byteImage,
                                eventSchedule,
                                _packageTypeList[0].PackagePrice,
                                _packageTypeList[1].PackagePrice,
                                _packageTypeList[2].PackagePrice,
                                goldPackageCost,
                                silverPackageCost,
                                bronzePackageCost,
                                totalPackageCost,
                                out eventID);
                        }
                        else
                        {
                            mEvent.Update(
                                _eventID,
                                Convert.ToInt32(comboBoxVenue.SelectedValue),
                                eventTypeID,
                                textBoxName.Text,
                                textBoxDescription.Text,
                                byteImage,
                                eventSchedule,
                                _packageTypeList[0].PackagePrice,
                                _packageTypeList[1].PackagePrice,
                                _packageTypeList[2].PackagePrice,
                                goldPackageCost,
                                silverPackageCost,
                                bronzePackageCost,
                                totalPackageCost);
                        }
                        if (dsEventActor.Tables[0].Rows.Count == 0)
                        {
                            eventActorMap.DeleteByEventID(eventID);
                        }

                        DataTable dtAdded         = dsEventActor.Tables[0].GetChanges(DataRowState.Added);
                        DataTable dtDeleted       = dsEventActor.Tables[0].GetChanges(DataRowState.Deleted);
                        int       eventActorMapID = 0;
                        if (dtAdded != null)
                        {
                            foreach (DataRow dr in dtAdded.Rows)
                            {
                                int eventActorID = Convert.ToInt32(dr[1]);
                                if (eventActorID == 0)
                                {
                                    eventActor.Insert(
                                        (string)dr[0],
                                        out eventActorID);
                                }
                                eventActorMap.Insert(
                                    eventID,
                                    eventActorID,
                                    out eventActorMapID);
                            }
                        }
                        if (dtDeleted != null)
                        {
                            foreach (DataRow dr in dtDeleted.Rows)
                            {
                                int eventActorID = (int)dr[1];
                                if (eventActorID != 0)
                                {
                                    eventActorMap.DeleteByEventActorID(eventActorID);
                                }
                            }
                        }
                        dbTransaction.Transaction.Commit();
                        isSuccess = true;
                    }
                    catch (Exception ex)
                    {
                        dbTransaction.Transaction.Rollback();

                        ErrorForm errorForm =
                            new ErrorForm(ex.Message, ex.ToString());
                        errorForm.ShowDialog(this);
                        errorForm.Close();
                    }
                    finally
                    {
                        dbTransaction.Transaction.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorForm errorForm =
                    new ErrorForm(ex.Message, ex.ToString());
                errorForm.ShowDialog(this);
                errorForm.Close();
            }
            if (isSuccess)
            {
                _eventList.EventName        = textBoxName.Text;
                _eventList.EventDescription = textBoxDescription.Text;
                _eventList.EventPhoto       = byteImage;
                _eventList.EventID          = eventID;
                DialogResult = DialogResult.OK;
                Close();
            }
        }
Пример #12
0
        private void GetSource()
        {
            List <EventList> unUsedEvent =
                new List <EventList>();
            List <EventList> usedEvent =
                new List <EventList>();

            _sourceEvents =
                new List <EventList>();

            SAPEventReadWrite eventRW =
                new SAPEventReadWrite(Config._dbConnectionName);

            SAPEventAttendeeAgencyMapReadWrite eventAttendyMapRW =
                new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName);

            SAPPackageEventMapReadWrite packageEventMapRW =
                new SAPPackageEventMapReadWrite(Config._dbConnectionName);

            using (SAPDataReaderEvent readerEvent =
                       eventRW.ReaderSelectAll())
            {
                if (readerEvent.DataReader != null &&
                    readerEvent.DataReader.HasRows)
                {
                    SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapDataTable dtEventAttendee =
                        eventAttendyMapRW.SelectAll().EventAttendeeAgencyMap;
                    SAPDataSetPackageEventMap.PackageEventMapDataTable dtPackageEvent =
                        packageEventMapRW.SelectAll().PackageEventMap;

                    while (readerEvent.DataReader.Read())
                    {
                        EventList item = new EventList();
                        item.EventName        = readerEvent.EventName;
                        item.EventDescription = readerEvent.EventDescription;
                        item.EventPhoto       = readerEvent.EventPhoto;
                        item.EventID          = readerEvent.EventID;

                        DataRow[] rows =
                            dtEventAttendee.Select("EventID = " + item.EventID.ToString());

                        if (rows != null && rows.Length > 0)
                        {
                            item.EventEditTag   = true;
                            item.EventDeleteTag = true;
                            usedEvent.Add(item);
                        }
                        else
                        {
                            item.EventEditTag = false;

                            rows =
                                dtPackageEvent.Select("EventId = " + item.EventID.ToString());

                            item.EventDeleteTag =
                                (rows != null && rows.Length > 0);

                            unUsedEvent.Add(item);
                        }
                    }// while (readerEvent.DataReader.Read());
                    _sourceEvents.AddRange(unUsedEvent);
                    _sourceEvents.AddRange(usedEvent);
                }
            }

            if (_sourceEvents.Count > 0)
            {
                pictureBoxPoster.Image =
                    UtilityHelper.ByteToImage(_sourceEvents[0].EventPhoto);
            }
        }
        public static void CreateSeedData()
        {
            #region create random name/date of birth list
            Random        rand     = new Random((int)DateTime.Now.Ticks);
            int           index    = 0;
            List <string> names    = new List <string>();
            List <string> nameList =
                Properties.Resources.ValidNames.Split(
                    Environment.NewLine.ToCharArray(),
                    StringSplitOptions.RemoveEmptyEntries).ToList <string>();

            DateTime[] dobs = new DateTime[Config.SeedDataLimit * 4 + 1];

            int month = DateTime.Now.Month;
            int day   = DateTime.Now.Day;
            int year  = DateTime.Now.Year;

            int nameCounter = 0;
            do
            {
                if (!names.Contains(nameList[nameCounter]))
                {
                    names.Add(nameList[nameCounter]);
                    index = rand.Next(year - 40, year);
                    dobs[names.Count - 1] = new DateTime(index, month, day);
                    nameCounter++;
                }
            } while (names.Count < Config.SeedDataLimit * 4 + 1);

            #endregion

            cityCountry =
                new SortedDictionary <string, string>();

            SetCityCountry();

            #region Clear Tables
            SAPEventActorMapReadWrite eventActorMapRW =
                new SAPEventActorMapReadWrite(Config._dbConnectionName);

            SAPDataSetEventActorMap eventActorMapDataSet = eventActorMapRW.SelectAll();

            foreach (SAPDataSetEventActorMap.EventActorMapRow row in
                     eventActorMapDataSet.EventActorMap.Rows)
            {
                eventActorMapRW.Delete(row.EventActorMapID);
            }

            SAPEventAttendeeAgencyMapReadWrite eventAttendeeAgencyMapRW =
                new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName);

            SAPDataSetEventAttendeeAgencyMap eventAttendeeAgencyMapDataSet =
                eventAttendeeAgencyMapRW.SelectAll();

            foreach (SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow row
                     in eventAttendeeAgencyMapDataSet.EventAttendeeAgencyMap.Rows)
            {
                eventAttendeeAgencyMapRW.Delete(row.EventAttendeeAgencyMapID);
            }


            SAPEventAttendeeReadWrite eventAttendeeRW =
                new SAPEventAttendeeReadWrite(Config._dbConnectionName);

            SAPDataSetEventAttendee eventAttendeeDataSet = eventAttendeeRW.SelectAll();

            foreach (SAPDataSetEventAttendee.EventAttendeeRow row in
                     eventAttendeeDataSet.EventAttendee.Rows)
            {
                eventAttendeeRW.Delete(row.EventAttendeeID);
            }

            SAPEventActorReadWrite eventActorRW =
                new SAPEventActorReadWrite(Config._dbConnectionName);

            SAPDataSetEventActor eventActorDataSet = eventActorRW.SelectAll();

            foreach (SAPDataSetEventActor.EventActorRow row in
                     eventActorDataSet.EventActor.Rows)
            {
                eventActorRW.Delete(row.EventActorID);
            }

            SAPPackageEventMapReadWrite packageEventMapRW =
                new SAPPackageEventMapReadWrite(Config._dbConnectionName);

            SAPDataSetPackageEventMap packageEventMapDataset = packageEventMapRW.SelectAll();

            foreach (SAPDataSetPackageEventMap.PackageEventMapRow row in
                     packageEventMapDataset.PackageEventMap.Rows)
            {
                packageEventMapRW.Delete(row.PackageEventMapID);
            }

            SAPPackageReadWrite packageRW =
                new SAPPackageReadWrite(Config._dbConnectionName);

            SAPDataSetPackage packageDataSet = packageRW.SelectAll();

            foreach (SAPDataSetPackage.PackageRow row in
                     packageDataSet.Package.Rows)
            {
                packageRW.Delete(row.PackageID);
            }

            SAPEventReadWrite eventRW =
                new SAPEventReadWrite(Config._dbConnectionName);

            SAPDataSetEvent eventDataSet = eventRW.SelectAll();

            foreach (SAPDataSetEvent.EventRow row in eventDataSet.Event.Rows)
            {
                eventRW.Delete(row.EventID);
            }


            SAPEventTypeReadWrite eventTypeRW =
                new SAPEventTypeReadWrite(Config._dbConnectionName);

            SAPDataSetEventType eventTypeDataSet = eventTypeRW.SelectAll();

            foreach (SAPDataSetEventType.EventTypeRow row in
                     eventTypeDataSet.EventType.Rows)
            {
                eventTypeRW.Delete(row.EventTypeID);
            }

            #endregion

            #region Repopulate Tables

            SAPEventTypeReadWrite seedEventTypeRW =
                new SAPEventTypeReadWrite(Config._dbSeedConnectionName);

            SAPDataSetEventType seedEventTypeDataSet =
                seedEventTypeRW.SelectAll();

            int retEventTypeID = 0;

            foreach (SAPDataSetEventType.EventTypeRow row in
                     seedEventTypeDataSet.EventType.Rows)
            {
                eventTypeRW.Insert(row.EventTypeName, row.EventTypeDescription, out retEventTypeID);
            }


            SAPEventReadWrite seedEventRW =
                new SAPEventReadWrite(Config._dbSeedConnectionName);

            SAPDataSetEvent seedEventDataSet = seedEventRW.SelectAll();

            int retEventID = 0;

            //check the difference in seed date to adjust the event dates
            long monthDiff = UtilityHelper.GetMonthDifference(
                Config.DateLastSeed,
                DateTime.Now);

            foreach (SAPDataSetEvent.EventRow row in
                     seedEventDataSet.Event.Rows)
            {
                using (SAPDataReaderEventType rdrSeedEventType =
                           eventTypeRW.ReaderSelectByEventTypeName(row.EventTypeName))
                {
                    if (rdrSeedEventType.DataReader != null &&
                        rdrSeedEventType.DataReader.HasRows)
                    {
                        DateTime newDate = new DateTime();
                        //long monthDifference =
                        //    UtilityHelper.GetMonthDifference(DateTime.Now, row.EventDate);

                        newDate = row.EventDate.AddMonths((int)monthDiff);

                        rdrSeedEventType.DataReader.Read();
                        eventRW.Insert(row.VenueID, rdrSeedEventType.EventTypeID, row.EventName,
                                       row.EventDescription, row.EventPhoto, newDate, row.GoldPackagePrice,
                                       row.SilverPackagePrice, row.BronzePackagePrice, row.GoldPackageTrueCost,
                                       row.SilverPackageTrueCost, row.BronzePackageTrueCost, row.EventTotalCost,
                                       out retEventID);
                    }
                }
            }

            SAPPackageReadWrite seedPackageRW =
                new SAPPackageReadWrite(Config._dbSeedConnectionName);

            SAPDataSetPackage seedPackageDataset =
                seedPackageRW.SelectAll();

            int retPackageID = 0;


            foreach (SAPDataSetPackage.PackageRow row in
                     seedPackageDataset.Package.Rows)
            {
                packageRW.Insert(row.PackageName, row.PackageDescription,
                                 row.PackageImage, out retPackageID);
            }

            int   retPackageEventMapID        = 0;
            int[] seedNumberOfEventPerPackage = { 4, 3, 4, 4 };
            int   packageIndex = 0;

            using (SAPDataReaderPackage rdrPackage = packageRW.ReaderSelectAll())
            {
                if (rdrPackage.DataReader != null &&
                    rdrPackage.DataReader.HasRows)
                {
                    int eventIdx = 0;

                    while (rdrPackage.DataReader.Read())
                    {
                        int eventID = 0;
                        for (int idx = 0; idx < seedNumberOfEventPerPackage[packageIndex]; idx++)
                        {
                            using (SAPDataReaderEvent rdrEvent = eventRW.ReaderSelectAll())
                            {
                                if (rdrEvent.DataReader != null &&
                                    rdrEvent.DataReader.HasRows)
                                {
                                    if (eventIdx == 0)
                                    {
                                        rdrEvent.DataReader.Read();
                                        eventID = rdrEvent.EventID;
                                    }
                                    else
                                    {
                                        for (int eidx = 0; eidx <= eventIdx; eidx++)
                                        {
                                            rdrEvent.DataReader.Read();
                                            eventID = rdrEvent.EventID;
                                        }
                                    }
                                }
                            }
                            packageEventMapRW.Insert(rdrPackage.PackageID, eventID, out retPackageEventMapID);
                            eventIdx++;
                        }
                        packageIndex++;
                    }
                }
            }

            #endregion

            int currentNameIndex = 0;

            //get the 3 package here

            SAPPackageEventReadOnly packageEvent =
                new SAPPackageEventReadOnly(Config._dbConnectionName);

            _flightConnection =
                new SAPFlightConnection(Config.SAPUserName, Config.SAPPassword);

            #region generate data
            using (SAPDataReaderPackage rdrPackage =
                       packageRW.ReaderSelectAll())
            {
                if (rdrPackage.DataReader != null &&
                    rdrPackage.DataReader.HasRows)
                {
                    while (rdrPackage.DataReader.Read())
                    {
                        if (Array.IndexOf(packages, rdrPackage.PackageName.ToUpper().Trim()) > -1)
                        {
                            List <string> location = new List <string>();

                            SeedEventDataList[] flights = GetEvent(rdrPackage.PackageID);

                            for (int i = 1; i <= Config.SeedDataLimit; i++)
                            {
                                DateTime previousDate = DateTime.MinValue;
                                string   cityFrom     = string.Empty;

                                #region iterate for each event
                                for (int idx = 0; idx < flights.Length; idx++)
                                {
                                    BAPISCODAT selectedItem  = null;
                                    string     selectedClass = string.Empty;
                                    if (_flightConnection.GetList("", Config.SeedTravelAgency, cityFrom, flights[idx].VenueCity))
                                    {
                                        List <int>   classTypeIndex = new List <int>();
                                        BAPISCODAT[] flightList     = _flightConnection._bapiConnectionList;
                                        do
                                        {
                                            #region random classtype
                                            if (classTypeIndex.Count < 3)
                                            {
                                                do
                                                {
                                                    int ridx = rand.Next(0, 3);
                                                    if (!classTypeIndex.Contains(ridx))
                                                    {
                                                        classTypeIndex.Add(ridx);
                                                        break;
                                                    }
                                                } while (true);
                                            }
                                            string classType = _classType[classTypeIndex[classTypeIndex.Count - 1]];
                                            #endregion

                                            foreach (BAPISCODAT item in flightList)
                                            {
                                                bool isAvailable = true;

                                                if (!IsValidFlightDate(item.FLIGHTDATE, flights[idx].EventDate, previousDate))
                                                {
                                                    continue;
                                                }

                                                isAvailable = IsFlightAvailable(item, classType);

                                                #region check if city to is not found on previous list
                                                //make sure that this is the startup point of the event
                                                if (isAvailable)
                                                {
                                                    if (previousDate == DateTime.MinValue)
                                                    {
                                                        if (location.Contains(item.CITYFROM))
                                                        {
                                                            //mark this in case there would be no more cityfrom on the list
                                                            if (selectedItem == null)
                                                            {
                                                                selectedItem  = item;
                                                                selectedClass = classType;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            location.Add(item.CITYFROM);
                                                            selectedItem  = item;
                                                            selectedClass = classType;
                                                            classTypeIndex.Add(1);
                                                            classTypeIndex.Add(2);
                                                            classTypeIndex.Add(3);
                                                            break;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        selectedItem  = item;
                                                        selectedClass = classType;
                                                        classTypeIndex.Add(1);
                                                        classTypeIndex.Add(2);
                                                        classTypeIndex.Add(3);
                                                        break;
                                                    }
                                                }
                                                #endregion
                                            }
                                        } while (classTypeIndex.Count < 3);
                                    }
                                    previousDate = flights[idx].EventDate;
                                    if (selectedItem != null)
                                    {
                                        SeedEventDataList eventData = flights[idx];
                                        eventData.AgencyNum    = selectedItem.AGENCYNUM;
                                        eventData.FlightConnNo = selectedItem.FLIGHTCONN;
                                        eventData.CityFrom     = selectedItem.CITYFROM;
                                        eventData.FlightDate   = selectedItem.FLIGHTDATE;
                                        eventData.ClassType    = selectedClass;
                                        flights[idx]           = eventData;
                                        cityFrom = eventData.VenueCity;
                                    }
                                }
                                #endregion

                                #region verify if there's flight
                                bool isReady = true;
                                for (int idx = 0; idx < flights.Length; idx++)
                                {
                                    if (String.IsNullOrEmpty(flights[idx].FlightConnNo))
                                    {
                                        isReady = false;
                                    }
                                }
                                #endregion

                                if (isReady)
                                {
                                    string customerCity = flights[0].CityFrom;
                                    string customerName = names[currentNameIndex];
                                    string language     = string.Empty;
                                    string country      = GetCountry(customerCity, out language);
                                    string dob          =
                                        string.Format("{0:yyyy-MM-dd}", dobs[currentNameIndex]);
                                    string customerNumber = string.Empty;
                                    bool   isError        = false;

                                    #region save customer
                                    SAPCustomer customer =
                                        new SAPCustomer(Config.SAPUserName, Config.SAPPassword);

                                    if (customer.CreateFromData(
                                            customerCity,
                                            country,
                                            customerName,
                                            "P",
                                            "none",
                                            language,
                                            "N/A",
                                            "",
                                            ""))
                                    {
                                        //get customer number of inserted customer
                                        bool found = false;
                                        while (!found)
                                        {
                                            customer.GetList();
                                            if (customer._customerList.Length > 0)
                                            {
                                                //search last 3
                                                for (int j = customer._customerList.Length - 1;
                                                     j > (customer._customerList.Length - 3);
                                                     j--)
                                                {
                                                    if (customer._customerList[j].CUSTNAME.Trim() == customerName.Trim())
                                                    {
                                                        customerNumber = customer._customerList[j].CUSTOMERID;
                                                        found          = true;
                                                        break;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                break;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        isError = true;
                                    }
                                    #endregion

                                    #region create flight trip
                                    if (customerNumber.Length > 0)
                                    {
                                        SAPFlightTrip flightTrip =
                                            new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword);
                                        for (int idx = 0; idx < flights.Length; idx++)
                                        {
                                            SeedEventDataList item = flights[idx];
                                            string            tripNumber;
                                            string            travelAgencyNumber;
                                            if (flightTrip.CreateTrip(
                                                    item.AgencyNum,
                                                    item.ClassType,
                                                    customerNumber,
                                                    item.FlightConnNo,
                                                    "",
                                                    item.FlightDate,
                                                    "",
                                                    "none",
                                                    dob,
                                                    customerName,
                                                    out travelAgencyNumber,
                                                    out tripNumber))
                                            {
                                                flights[idx].TripNumber = tripNumber;
                                            }
                                            else
                                            {
                                                isError = true;
                                            }
                                        }
                                    }
                                    #endregion

                                    #region save to local db
                                    if (!isError)
                                    {
                                        int eventAttendeeID = 0;
                                        SAPEventAttendeeReadWrite eventAttendee =
                                            new SAPEventAttendeeReadWrite(Config._dbConnectionName);
                                        DateTime dateCreate;
                                        eventAttendee.Insert(
                                            rdrPackage.PackageID,
                                            customerNumber,
                                            DateTime.Now,
                                            out dateCreate,
                                            out eventAttendeeID);

                                        for (int idx = 0; idx < flights.Length; idx++)
                                        {
                                            int eventAttendMapID = 0;
                                            SAPEventAttendeeAgencyMapReadWrite eventMap =
                                                new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName);
                                            eventMap.Insert(
                                                eventAttendeeID,
                                                flights[idx].EventID,
                                                flights[idx].AgencyNum,
                                                flights[idx].TripNumber,
                                                out eventAttendMapID);
                                        }
                                    }
                                    #endregion

                                    currentNameIndex++;
                                }
                                //reset flights
                                for (int idx = 0; idx < flights.Length; idx++)
                                {
                                    flights[idx].AgencyNum    = string.Empty;
                                    flights[idx].ClassType    = string.Empty;
                                    flights[idx].FlightConnNo = string.Empty;
                                    flights[idx].FlightDate   = string.Empty;
                                    flights[idx].TripNumber   = string.Empty;
                                }
                            }
                        }
                    }
                }
            }
            #endregion

            Config.UpdateKey(Config._keySeedData, "true");
            Config.UpdateKey(Config._keyDateLastSeed, DateTime.Now.ToString());
        }