public static Boolean FillFormDataFromExtract(Int64 AEventPartnerKey, Int32 AExtractId, TFormLetterInfo AFormLetterInfo,
                                                      out List <TFormData> AFormDataList)
        {
            Boolean ReturnValue = true;

            List <TFormData> dataList = new List <TFormData>();
            MExtractTable    ExtractTable;
            Int32            RowCounter = 0;

            TProgressTracker.InitProgressTracker(DomainManager.GClientID.ToString(), Catalog.GetString("Create Attendee Form Letter"));

            TDBTransaction ReadTransaction = null;

            DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum,
                                                                      ref ReadTransaction,
                                                                      delegate
            {
                ExtractTable = MExtractAccess.LoadViaMExtractMaster(AExtractId, ReadTransaction);

                RowCounter = 0;

                // query all rows of given extract
                foreach (MExtractRow ExtractRow in ExtractTable.Rows)
                {
                    RowCounter++;
                    TFormDataAttendee formDataAttendee = new TFormDataAttendee();
                    FillFormDataFromAttendee(AEventPartnerKey, ExtractRow.PartnerKey, formDataAttendee, AFormLetterInfo, ExtractRow.SiteKey,
                                             ExtractRow.LocationKey);
                    dataList.Add(formDataAttendee);

                    if (TProgressTracker.GetCurrentState(DomainManager.GClientID.ToString()).CancelJob)
                    {
                        dataList.Clear();
                        ReturnValue = false;
                        TLogging.Log("Retrieve Conference Form Letter Data - Job cancelled");
                        break;
                    }

                    TProgressTracker.SetCurrentState(DomainManager.GClientID.ToString(), Catalog.GetString("Retrieving Attendee Data"),
                                                     (RowCounter * 100) / ExtractTable.Rows.Count);
                }
            });

            TProgressTracker.FinishJob(DomainManager.GClientID.ToString());

            AFormDataList = new List <TFormData>();
            AFormDataList = dataList;
            return(ReturnValue);
        }
        public static Boolean FillFormDataForAllAttendees(Int64 AEventPartnerKey, TFormLetterInfo AFormLetterInfo,
                                                          out List <TFormData> AFormDataList)
        {
            Boolean ReturnValue = true;

            List <TFormData> dataList = new List <TFormData>();
            PcAttendeeTable  AttendeeTable;
            Int32            RowCounter = 0;

            TProgressTracker.InitProgressTracker(DomainManager.GClientID.ToString(), Catalog.GetString("Create Attendee Form Letter for All Attendee"));

            TDBTransaction ReadTransaction = new TDBTransaction();

            DBAccess.ReadTransaction(
                ref ReadTransaction,
                delegate
            {
                AttendeeTable = PcAttendeeAccess.LoadViaPcConference(AEventPartnerKey, ReadTransaction);

                RowCounter = 0;

                // query all rows of given extract
                foreach (PcAttendeeRow AttendeeRow in AttendeeTable.Rows)
                {
                    RowCounter++;
                    TFormDataAttendee formDataAttendee = new TFormDataAttendee();
                    FillFormDataFromAttendee(AEventPartnerKey, AttendeeRow.PartnerKey, formDataAttendee, AFormLetterInfo);

                    dataList.Add(formDataAttendee);

                    if (TProgressTracker.GetCurrentState(DomainManager.GClientID.ToString()).CancelJob)
                    {
                        dataList.Clear();
                        ReturnValue = false;
                        TLogging.Log("Retrieve Conference Form Letter Data for All Attendees - Job cancelled");
                        break;
                    }

                    TProgressTracker.SetCurrentState(DomainManager.GClientID.ToString(), Catalog.GetString("Retrieving Attendee Data"),
                                                     (RowCounter * 100) / AttendeeTable.Rows.Count);
                }
            });

            TProgressTracker.FinishJob(DomainManager.GClientID.ToString());

            AFormDataList = new List <TFormData>();
            AFormDataList = dataList;
            return(ReturnValue);
        }
        public static void FillFormDataFromAttendee(Int64 AEventPartnerKey, Int64 APartnerKey,
                                                    TFormDataAttendee AFormDataAttendee,
                                                    TFormLetterInfo AFormLetterInfo,
                                                    TDBTransaction AReadTransaction,
                                                    Int64 ASiteKey     = 0,
                                                    Int32 ALocationKey = 0)
        {
            TPartnerClass         PartnerClass;
            String                ShortName;
            TStdPartnerStatusCode PartnerStatusCode;

            if (MCommonMain.RetrievePartnerShortName(APartnerKey, out ShortName, out PartnerClass, out PartnerStatusCode, AReadTransaction))
            {
                // first retrieve all applicant information

                TFormLettersPersonnelWebConnector.FillFormDataFromApplicant(AEventPartnerKey,
                                                                            APartnerKey,
                                                                            AFormDataAttendee,
                                                                            AFormLetterInfo,
                                                                            AReadTransaction,
                                                                            ASiteKey,
                                                                            ALocationKey);

                PcAttendeeTable AttTable;
                PcAttendeeRow   AttRow;

                AttTable = PcAttendeeAccess.LoadByPrimaryKey(AEventPartnerKey, APartnerKey, AReadTransaction);

                if (AttTable.Count > 0)
                {
                    AttRow = (PcAttendeeRow)AttTable.Rows[0];
                    AFormDataAttendee.DiscoveryGroup = AttRow.DiscoveryGroup;
                    AFormDataAttendee.WorkGroup      = AttRow.WorkGroup;

                    PcConferenceVenueTable VenueTable;
                    PcConferenceVenueRow   VenueRow;

                    VenueTable = PcConferenceVenueAccess.LoadViaPcConference(AEventPartnerKey, AReadTransaction);

                    if (VenueTable.Count > 0)
                    {
                        VenueRow = (PcConferenceVenueRow)VenueTable.Rows[0];
                        AFormDataAttendee.Venue = VenueRow.VenueKey.ToString("0000000000");
                        //TODO Buidling, Room, RoomIn, RoomOut, RoomDatesMatchTravelDates, VenueName instead of VenueKey
                    }
                }
            }
        }
        public static TFormDataAttendee FillFormDataFromAttendee(Int64 AEventPartnerKey, Int64 APartnerKey,
                                                                 TFormDataAttendee AFormDataAttendee,
                                                                 TFormLetterInfo AFormLetterInfo,
                                                                 Int64 ASiteKey     = 0,
                                                                 Int32 ALocationKey = 0)
        {
            TDBTransaction ReadTransaction = null;

            DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum,
                                                                      ref ReadTransaction,
                                                                      delegate
            {
                FillFormDataFromAttendee(AEventPartnerKey, APartnerKey, AFormDataAttendee, AFormLetterInfo, ReadTransaction, ASiteKey,
                                         ALocationKey);
            });

            return(AFormDataAttendee);
        }
        public static TFormDataAttendee FillFormDataFromAttendee(Int64 AEventPartnerKey, Int64 APartnerKey,
                                                                 TFormDataAttendee AFormDataAttendee,
                                                                 TFormLetterInfo AFormLetterInfo,
                                                                 Int64 ASiteKey     = 0,
                                                                 Int32 ALocationKey = 0)
        {
            TDBTransaction ReadTransaction = new TDBTransaction();

            DBAccess.ReadTransaction(
                ref ReadTransaction,
                delegate
            {
                FillFormDataFromAttendee(AEventPartnerKey, APartnerKey, AFormDataAttendee, AFormLetterInfo, ReadTransaction, ASiteKey,
                                         ALocationKey);
            });

            return(AFormDataAttendee);
        }