public static Boolean GetRecentlyUsedPartners(int AMaxPartnersCount, ArrayList APartnerClasses, out Dictionary <long, string>ARecentlyUsedPartners) { TDBTransaction ReadTransaction; Boolean NewTransaction; ARecentlyUsedPartners = new Dictionary <long, string>(); TLogging.LogAtLevel(9, "TPartnerServerLookups.GetRecentlyUsedPartner called!"); PRecentPartnersTable RecentPartnersDT = new PRecentPartnersTable(); ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); // Load the recently used partners from this user try { RecentPartnersDT = PRecentPartnersAccess.LoadViaSUser(UserInfo.GUserInfo.UserID, ReadTransaction); } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.GetRecentUsedPartners: committed own transaction."); } } PPartnerTable PartnerDT = new PPartnerTable(); // Sort the users by date and time they have been last used System.Data.DataRow[] RecentPartnerRows = RecentPartnersDT.Select("", TTypedDataTable.GetLabel(PRecentPartnersTable.TableId, PRecentPartnersTable.ColumnwhenDateId) + " DESC, " + TTypedDataTable.GetLabel(PRecentPartnersTable.TableId, PRecentPartnersTable.ColumnwhenTimeId) + " DESC"); for (int Counter = 0; Counter < RecentPartnersDT.Rows.Count; ++Counter) { PRecentPartnersRow RecentPartnerRow = (PRecentPartnersRow)RecentPartnerRows[Counter]; ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction( IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); // Get the partner name from the recently used partner try { PartnerDT = PPartnerAccess.LoadByPrimaryKey(RecentPartnerRow.PartnerKey, ReadTransaction); } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.GetRecentUsedPartners: committed own transaction."); } } if (PartnerDT.Rows.Count > 0) { /* Check the partner class. * If we want this partner then add it to the ARecentlyUsedPartners list * otherwise skip it. */ PPartnerRow PartnerRow = (PPartnerRow)PartnerDT.Rows[0]; foreach (Object CurrentPartnerClass in APartnerClasses) { string TmpString = CurrentPartnerClass.ToString(); if ((TmpString == "*") || (TmpString == PartnerRow.PartnerClass)) { // String contains Name and type like this: J. Miller (type FAMILY) ARecentlyUsedPartners.Add(PartnerRow.PartnerKey, PartnerRow.PartnerShortName + " (type " + PartnerRow.PartnerClass + ")"); } } } if (ARecentlyUsedPartners.Count >= AMaxPartnersCount) { break; } } return true; }
public static Boolean GetRecentlyUsedPartners(int AMaxPartnersCount, ArrayList APartnerClasses, out Dictionary <long, string> ARecentlyUsedPartners) { TDBTransaction ReadTransaction; Boolean NewTransaction; ARecentlyUsedPartners = new Dictionary <long, string>(); TLogging.LogAtLevel(9, "TPartnerServerLookups.GetRecentlyUsedPartner called!"); PRecentPartnersTable RecentPartnersDT = new PRecentPartnersTable(); ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); // Load the recently used partners from this user try { RecentPartnersDT = PRecentPartnersAccess.LoadViaSUser(UserInfo.GUserInfo.UserID, ReadTransaction); } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.GetRecentUsedPartners: committed own transaction."); } } PPartnerTable PartnerDT = new PPartnerTable(); // Sort the users by date and time they have been last used System.Data.DataRow[] RecentPartnerRows = RecentPartnersDT.Select("", TTypedDataTable.GetLabel(PRecentPartnersTable.TableId, PRecentPartnersTable.ColumnwhenDateId) + " DESC, " + TTypedDataTable.GetLabel(PRecentPartnersTable.TableId, PRecentPartnersTable.ColumnwhenTimeId) + " DESC"); for (int Counter = 0; Counter < RecentPartnersDT.Rows.Count; ++Counter) { PRecentPartnersRow RecentPartnerRow = (PRecentPartnersRow)RecentPartnerRows[Counter]; ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction( IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); // Get the partner name from the recently used partner try { PartnerDT = PPartnerAccess.LoadByPrimaryKey(RecentPartnerRow.PartnerKey, ReadTransaction); } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.GetRecentUsedPartners: committed own transaction."); } } if (PartnerDT.Rows.Count > 0) { /* Check the partner class. * If we want this partner then add it to the ARecentlyUsedPartners list * otherwise skip it. */ PPartnerRow PartnerRow = (PPartnerRow)PartnerDT.Rows[0]; foreach (Object CurrentPartnerClass in APartnerClasses) { string TmpString = CurrentPartnerClass.ToString(); if ((TmpString == "*") || (TmpString == PartnerRow.PartnerClass)) { // String contains Name and type like this: J. Miller (type FAMILY) ARecentlyUsedPartners.Add(PartnerRow.PartnerKey, PartnerRow.PartnerShortName + " (type " + PartnerRow.PartnerClass + ")"); } } } if (ARecentlyUsedPartners.Count >= AMaxPartnersCount) { break; } } return(true); }