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); }
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); }