public static int CanFamilyMergeIntoDifferentClass(long APartnerKey) { int ReturnValue = 0; TDBTransaction Transaction = null; DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted, ref Transaction, delegate { PPersonTable PersonTable = PPersonAccess.LoadViaPFamily(APartnerKey, Transaction); if (PersonTable.Rows.Count > 0) { ReturnValue = 1; } AGiftDetailTable GiftDetailTable = AGiftDetailAccess.LoadViaPPartnerRecipientKey(APartnerKey, Transaction); if (GiftDetailTable.Rows.Count > 0) { ReturnValue = 2; } PBankingDetailsTable BankingDetailsTable = PBankingDetailsAccess.LoadViaPPartner(APartnerKey, Transaction); if (BankingDetailsTable.Rows.Count > 0) { ReturnValue = 3; } }); return(ReturnValue); }
public static int CheckPartnerCommitments(long AFromPartnerKey, long AToPartnerKey, TPartnerClass APartnerClass) { PPersonTable FromPersonTable = null; PPersonTable ToPersonTable = null; int ReturnValue = 0; TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted); try { if (APartnerClass == TPartnerClass.FAMILY) { FromPersonTable = PPersonAccess.LoadViaPFamily(AFromPartnerKey, Transaction); ToPersonTable = PPersonAccess.LoadViaPFamily(AToPartnerKey, Transaction); } else if (APartnerClass == TPartnerClass.PERSON) { FromPersonTable = PPersonAccess.LoadViaPPartner(AFromPartnerKey, Transaction); ToPersonTable = PPersonAccess.LoadViaPPartner(AToPartnerKey, Transaction); } // check if from partner has commitments if (PersonHasCommitments(FromPersonTable, Transaction)) { ReturnValue = 1; // check if two persons are in same family if ((APartnerClass == TPartnerClass.PERSON) && (((PPersonRow)FromPersonTable.Rows[0]).FamilyKey == ((PPersonRow)ToPersonTable.Rows[0]).FamilyKey)) { ReturnValue = 3; } // check if to partner also has commitments else if (PersonHasCommitments(ToPersonTable, Transaction)) { ReturnValue = 2; } } } catch (Exception e) { TLogging.Log(e.ToString()); } finally { DBAccess.GDBAccessObj.RollbackTransaction(); TLogging.LogAtLevel(7, "TMergePartnersWebConnector.CheckPartnerCommitments: rollback own transaction."); } return(ReturnValue); }
public static int CheckPartnerCommitments(long AFromPartnerKey, long AToPartnerKey, TPartnerClass APartnerClass) { PPersonTable FromPersonTable = null; PPersonTable ToPersonTable = null; int ReturnValue = 0; TDBTransaction Transaction = null; DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted, ref Transaction, delegate { if (APartnerClass == TPartnerClass.FAMILY) { FromPersonTable = PPersonAccess.LoadViaPFamily(AFromPartnerKey, Transaction); ToPersonTable = PPersonAccess.LoadViaPFamily(AToPartnerKey, Transaction); } else if (APartnerClass == TPartnerClass.PERSON) { FromPersonTable = PPersonAccess.LoadViaPPartner(AFromPartnerKey, Transaction); ToPersonTable = PPersonAccess.LoadViaPPartner(AToPartnerKey, Transaction); } // check if from partner has commitments if (PersonHasCommitments(FromPersonTable, Transaction)) { ReturnValue = 1; // check if two persons are in same family if ((APartnerClass == TPartnerClass.PERSON) && (((PPersonRow)FromPersonTable.Rows[0]).FamilyKey == ((PPersonRow)ToPersonTable.Rows[0]).FamilyKey)) { ReturnValue = 3; } // check if to partner also has commitments else if (PersonHasCommitments(ToPersonTable, Transaction)) { ReturnValue = 2; } } }); return(ReturnValue); }
public static int CanFamilyMergeIntoDifferentClass(long APartnerKey) { TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted); try { PPersonTable PersonTable = PPersonAccess.LoadViaPFamily(APartnerKey, Transaction); if (PersonTable.Rows.Count > 0) { return(1); } AGiftDetailTable GiftDetailTable = AGiftDetailAccess.LoadViaPPartnerRecipientKey(APartnerKey, Transaction); if (GiftDetailTable.Rows.Count > 0) { return(2); } PBankingDetailsTable BankingDetailsTable = PBankingDetailsAccess.LoadViaPPartner(APartnerKey, Transaction); if (BankingDetailsTable.Rows.Count > 0) { return(3); } } catch (Exception e) { TLogging.Log(e.ToString()); } finally { DBAccess.GDBAccessObj.RollbackTransaction(); TLogging.LogAtLevel(7, "TMergePartnersWebConnector.CanFamilyMergeIntoDifferentClass: rollback own transaction."); } return(0); }