Exemple #1
0
        public Int32 CountLabelUse(String ALabelUse, TDBTransaction AReadTransaction)
        {
            Int32 ReturnValue;
            PDataLabelUseTable TmpDT;
            PDataLabelUseRow   TemplateRow;

            TmpDT           = new PDataLabelUseTable();
            TemplateRow     = TmpDT.NewRowTyped(false);
            TemplateRow.Use = ALabelUse;
            ReturnValue     = PDataLabelUseAccess.CountUsingTemplate(TemplateRow, null, AReadTransaction);
            TLogging.LogAtLevel(10, "TOfficeSpecificDataLabelsUIConnector.CountLabelUse Result: " + ReturnValue.ToString());
            return(ReturnValue);
        }
Exemple #2
0
        public OfficeSpecificDataLabelsTDS GetData()
        {
            PDataLabelUseTable DataLabelUseDT;
            String             LabelUse;
            Int32 Counter;
            PDataLabelValuePartnerRow DataLabelValueRow;
            PDataLabelUseRow          DataLabelUseRow;

            // create the FOfficeSpecificDataLabelsTDS DataSet that will later be passed to the Client
            FOfficeSpecificDataLabelsTDS = new OfficeSpecificDataLabelsTDS("OfficeSpecificDataLabels");

            TDBTransaction ReadTransaction = new TDBTransaction();

            DBAccess.ReadTransaction(
                ref ReadTransaction,
                delegate
            {
                switch (FOfficeSpecificDataLabelUse)
                {
                case TOfficeSpecificDataLabelUseEnum.Family:
                case TOfficeSpecificDataLabelUseEnum.Church:
                case TOfficeSpecificDataLabelUseEnum.Organisation:
                case TOfficeSpecificDataLabelUseEnum.Unit:
                case TOfficeSpecificDataLabelUseEnum.Bank:
                case TOfficeSpecificDataLabelUseEnum.Venue:
                    PDataLabelValuePartnerAccess.LoadViaPPartnerPartnerKey(FOfficeSpecificDataLabelsTDS, FPartnerKey, ReadTransaction);
                    break;

                case TOfficeSpecificDataLabelUseEnum.Person:
                case TOfficeSpecificDataLabelUseEnum.Personnel:
                    PDataLabelValuePartnerAccess.LoadViaPPartnerPartnerKey(FOfficeSpecificDataLabelsTDS, FPartnerKey, ReadTransaction);

                    if (FOfficeSpecificDataLabelsTDS.PDataLabelValuePartner.Rows.Count > 0)
                    {
                        DataLabelUseDT = PDataLabelUseAccess.LoadAll(ReadTransaction);

                        // Initialize 'use' criterium according to the enum
                        LabelUse = Enum.GetName(typeof(TOfficeSpecificDataLabelUseEnum), FOfficeSpecificDataLabelUse);

                        // for every value row: check if the label exists in the requested 'use' section
                        // loop counts down, otherwise access violations when elements are deleted
                        for (Counter = FOfficeSpecificDataLabelsTDS.PDataLabelValuePartner.Rows.Count - 1; Counter >= 0; Counter--)
                        {
                            DataLabelValueRow = FOfficeSpecificDataLabelsTDS.PDataLabelValuePartner[Counter];
                            DataLabelUseRow   =
                                (PDataLabelUseRow)DataLabelUseDT.Rows.Find(new Object[] { DataLabelValueRow.DataLabelKey, LabelUse });

                            if (DataLabelUseRow == null)
                            {
                                DataLabelValueRow.Delete();
                                DataLabelValueRow.AcceptChanges();
                            }
                        }
                    }

                    break;

                case TOfficeSpecificDataLabelUseEnum.LongTermApp:
                case TOfficeSpecificDataLabelUseEnum.ShortTermApp:
                    PDataLabelValueApplicationAccess.LoadViaPmGeneralApplication(FOfficeSpecificDataLabelsTDS,
                                                                                 FPartnerKey,
                                                                                 FApplicationKey,
                                                                                 FRegistrationOffice,
                                                                                 ReadTransaction);
                    break;
                }
            });

            return(FOfficeSpecificDataLabelsTDS);
        }