/// <summary> /// convert partner status from string to enum /// </summary> /// <param name="APartnerStatusCode"></param> /// <returns></returns> public static TStdPartnerStatusCode StdPartnerStatusCodeStringToEnum(String APartnerStatusCode) { // just to have a default TStdPartnerStatusCode ReturnValue = TStdPartnerStatusCode.spscACTIVE; if (APartnerStatusCode == "ACTIVE") { ReturnValue = TStdPartnerStatusCode.spscACTIVE; } else if (APartnerStatusCode == "INACTIVE") { ReturnValue = TStdPartnerStatusCode.spscINACTIVE; } else if (APartnerStatusCode == "DIED") { ReturnValue = TStdPartnerStatusCode.spscDIED; } else if (APartnerStatusCode == "MERGED") { ReturnValue = TStdPartnerStatusCode.spscMERGED; } else if (APartnerStatusCode == "PRIVATE") { ReturnValue = TStdPartnerStatusCode.spscACTIVE; } return(ReturnValue); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { bool NewTransaction = false; bool Result = false; TDBTransaction ReadTransaction; TPartnerClass tmpPartnerClass = new TPartnerClass(); TStdPartnerStatusCode tmpPartnerStatus = new TStdPartnerStatusCode(); string tmpPartnerShortName = ""; if (APartnerKey != 0) { try { ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); Result = RetrievePartnerShortName(APartnerKey, out tmpPartnerShortName, out tmpPartnerClass, out tmpPartnerStatus, ReadTransaction); if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "RetrievePartnerShortName: committed own transaction."); } } catch (Exception) { TLogging.Log(String.Format("Problem retrieveing partner short name for Partner {0}", APartnerKey)); TLogging.LogStackTrace(TLoggingType.ToLogfile); } } else { APartnerClass = new TPartnerClass(); Result = true; //partner key key 0 should be valid } APartnerShortName = tmpPartnerShortName; APartnerClass = tmpPartnerClass; APartnerStatus = tmpPartnerStatus; return(Result); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { bool NewTransaction = false; bool Result = false; TDBTransaction ReadTransaction; TPartnerClass tmpPartnerClass = new TPartnerClass(); TStdPartnerStatusCode tmpPartnerStatus = new TStdPartnerStatusCode(); string tmpPartnerShortName = ""; if (APartnerKey != 0) { try { ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); Result = RetrievePartnerShortName(APartnerKey, out tmpPartnerShortName, out tmpPartnerClass, out tmpPartnerStatus, ReadTransaction); if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "RetrievePartnerShortName: committed own transaction."); } } catch (Exception) { TLogging.Log(String.Format("Problem retrieveing partner short name for Partner {0}", APartnerKey)); TLogging.LogStackTrace(TLoggingType.ToLogfile); } } else { APartnerClass = new TPartnerClass(); Result = true; //partner key key 0 should be valid } APartnerShortName = tmpPartnerShortName; APartnerClass = tmpPartnerClass; APartnerStatus = tmpPartnerStatus; return Result; }
/// <summary> /// Verifies the existence of a Partner. /// </summary> /// <param name="APartnerKey">PartnerKey of Partner to find the short name for</param> /// <param name="AValidPartnerClasses">Pass in a Set of valid PartnerClasses that the /// Partner is allowed to have (eg. [PERSON, FAMILY], or an empty Set ( [] ).</param> /// <param name="APartnerExists">True if the Partner exists in the database or if PartnerKey is 0.</param> /// <param name="APartnerShortName">ShortName for the found Partner ('' if Partner /// doesn't exist or PartnerKey is 0)</param> /// <param name="APartnerClass">Partner Class of the found Partner (FAMILY if Partner /// doesn't exist or PartnerKey is 0)</param> /// <param name="APartnerStatus">Partner Status</param> /// <returns>true if Partner was found in DB (except if AValidPartnerClasses isn't /// an empty Set and the found Partner isn't of a PartnerClass that is in the /// Set) or PartnerKey is 0, otherwise false</returns> public static bool VerifyPartner(Int64 APartnerKey, TPartnerClass[] AValidPartnerClasses, out bool APartnerExists, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { if (FDelegateVerifyPartner != null) { return FDelegateVerifyPartner(APartnerKey, AValidPartnerClasses, out APartnerExists, out APartnerShortName, out APartnerClass, out APartnerStatus); } else { throw new InvalidOperationException("Delegate 'TVerifyPartner' must be initialised before calling this Method"); } }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <param name="ATransaction">Open DB Transaction.</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus, TDBTransaction ATransaction) { Boolean ReturnValue; StringCollection RequiredColumns; PPartnerTable PartnerTable; // initialise out Arguments APartnerShortName = ""; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerStatus = TStdPartnerStatusCode.spscINACTIVE; if (APartnerKey != 0) { // only some fields are needed RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); RequiredColumns.Add(PPartnerTable.GetPartnerClassDBName()); RequiredColumns.Add(PPartnerTable.GetStatusCodeDBName()); PartnerTable = PPartnerAccess.LoadByPrimaryKey(APartnerKey, RequiredColumns, ATransaction, null, 0, 0); if (PartnerTable.Rows.Count == 0) { ReturnValue = false; } else { // since we loaded by primary key there must just be one partner row APartnerShortName = PartnerTable[0].PartnerShortName; APartnerClass = SharedTypes.PartnerClassStringToEnum(PartnerTable[0].PartnerClass); APartnerStatus = SharedTypes.StdPartnerStatusCodeStringToEnum(PartnerTable[0].StatusCode); ReturnValue = true; } } else { // Return result as valid if Partner Key is 0. ReturnValue = true; } return(ReturnValue); }
/// <summary> /// Verifies the existence of a Partner. /// </summary> /// <param name="APartnerKey">PartnerKey of Partner to find the short name for</param> /// <param name="AValidPartnerClasses">Pass in a Set of valid PartnerClasses that the /// Partner is allowed to have (eg. [PERSON, FAMILY], or an empty Set ( [] ).</param> /// <param name="APartnerExists">True if the Partner exists in the database or if PartnerKey is 0.</param> /// <param name="APartnerShortName">ShortName for the found Partner ('' if Partner /// doesn't exist or PartnerKey is 0)</param> /// <param name="APartnerClass">Partner Class of the found Partner (FAMILY if Partner /// doesn't exist or PartnerKey is 0)</param> /// <param name="APartnerStatus">Partner Status</param> /// <returns>true if Partner was found in DB (except if AValidPartnerClasses isn't /// an empty Set and the found Partner isn't of a PartnerClass that is in the /// Set) or PartnerKey is 0, otherwise false</returns> public static Boolean VerifyPartner(Int64 APartnerKey, TPartnerClass[] AValidPartnerClasses, out bool APartnerExists, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { return(TRemote.MPartner.Partner.ServerLookups.WebConnectors.VerifyPartner(APartnerKey, AValidPartnerClasses, out APartnerExists, out APartnerShortName, out APartnerClass, out APartnerStatus)); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { bool Result = false; TPartnerClass tmpPartnerClass = new TPartnerClass(); TStdPartnerStatusCode tmpPartnerStatus = new TStdPartnerStatusCode(); string tmpPartnerShortName = ""; if (APartnerKey != 0) { TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ReadTransaction, delegate { Result = RetrievePartnerShortName(APartnerKey, out tmpPartnerShortName, out tmpPartnerClass, out tmpPartnerStatus, ReadTransaction); }); } else { APartnerClass = new TPartnerClass(); Result = true; //partner key key 0 should be valid } APartnerShortName = tmpPartnerShortName; APartnerClass = tmpPartnerClass; APartnerStatus = tmpPartnerStatus; return(Result); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus) { bool Result = false; TPartnerClass tmpPartnerClass = new TPartnerClass(); TStdPartnerStatusCode tmpPartnerStatus = new TStdPartnerStatusCode(); string tmpPartnerShortName = ""; if (APartnerKey != 0) { TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ReadTransaction, delegate { Result = RetrievePartnerShortName(APartnerKey, out tmpPartnerShortName, out tmpPartnerClass, out tmpPartnerStatus, ReadTransaction); }); } else { APartnerClass = new TPartnerClass(); Result = true; //partner key key 0 should be valid } APartnerShortName = tmpPartnerShortName; APartnerClass = tmpPartnerClass; APartnerStatus = tmpPartnerStatus; return Result; }
/// <summary> /// extend an extract from a list of best addresses /// </summary> /// <param name="AExtractId">Extract Id of the Extract to extend</param> /// <param name="APartnerKeysTable"></param> /// <param name="APartnerKeyColumn">number of the column that contains the partner keys</param> /// <param name="ASiteKeyColumn">number of the column that contains the site keys</param> /// <param name="ALocationKeyColumn">number of the column that contains the location keys</param> /// <param name="AKeyCount">The number of keys that were actually added to the extract (any duplicates are excluded)</param> /// <param name="AIgnoredKeyList">A reference to a List of long. If not null the server will fill it with the partner keys that were ignored. Does not include duplicates.</param> /// <param name="AIgnoreDuplicates">true if duplicates should be looked out for. Can be set to false if called only once and not several times per extract.</param> /// <param name="AIgnoreInactive">true if inactive partners should be ignored</param> /// <param name="AIgnoreNonMailingLocations">true to ignore if the partner's best address is a non-mailing location</param> /// <param name="AIgnoreNoSolicitations">true to ignore partners where the No Solicitations flag is set</param> public static void ExtendExtractFromListOfPartnerKeys( Int32 AExtractId, DataTable APartnerKeysTable, Int32 APartnerKeyColumn, Int32 ASiteKeyColumn, Int32 ALocationKeyColumn, out Int32 AKeyCount, out List <long> AIgnoredKeyList, bool AIgnoreDuplicates, bool AIgnoreInactive, bool AIgnoreNonMailingLocations, bool AIgnoreNoSolicitations) { int RecordCounter = 0; PPartnerLocationTable PartnerLocationKeysTable; Int64 PartnerKey; List <long> ignoredKeyList = new List <long>(); TDBTransaction Transaction = null; bool SubmissionOK = true; DBAccess.GDBAccessObj.GetNewOrExistingAutoTransaction(IsolationLevel.Serializable, ref Transaction, ref SubmissionOK, delegate { // Pre-process the table to remove partner rows that do not match the filter requirements for (int i = APartnerKeysTable.Rows.Count - 1; i >= 0; i--) { DataRow dr = APartnerKeysTable.Rows[i]; Int64 partnerKey = Convert.ToInt64(dr[APartnerKeyColumn]); // Get a partner record containing our fields of interest StringCollection fields = new StringCollection(); fields.Add(PPartnerTable.GetStatusCodeDBName()); fields.Add(PPartnerTable.GetNoSolicitationsDBName()); DataTable dt = PPartnerAccess.LoadByPrimaryKey(partnerKey, fields, Transaction); if (dt.Rows.Count > 0) { if (AIgnoreInactive || AIgnoreNoSolicitations) { bool isActive = false; bool isNoSolicitation = false; object o = dt.Rows[0][PPartnerTable.GetStatusCodeDBName()]; if (o != null) { TStdPartnerStatusCode statusCode = SharedTypes.StdPartnerStatusCodeStringToEnum(o.ToString()); isActive = (statusCode == TStdPartnerStatusCode.spscACTIVE); } o = dt.Rows[0][PPartnerTable.GetNoSolicitationsDBName()]; if (o != null) { isNoSolicitation = Convert.ToBoolean(o); } if ((AIgnoreInactive && !isActive) || (AIgnoreNoSolicitations && isNoSolicitation)) { ignoredKeyList.Add(partnerKey); APartnerKeysTable.Rows.Remove(dr); } } } else { ignoredKeyList.Add(partnerKey); } } MExtractTable ExtractTable = new MExtractTable(); ExtractTable = MExtractAccess.LoadViaMExtractMaster(AExtractId, Transaction); // Location Keys need to be determined as extracts do not only need partner keys but // also Location Keys. DetermineBestLocationKeys(APartnerKeysTable, APartnerKeyColumn, ASiteKeyColumn, ALocationKeyColumn, out PartnerLocationKeysTable, Transaction); // use the returned table which contains partner and location keys to build the extract foreach (PPartnerLocationRow PartnerLocationRow in PartnerLocationKeysTable.Rows) { PartnerKey = PartnerLocationRow.PartnerKey; if (PartnerKey > 0) { if (AIgnoreNonMailingLocations) { // The PartnerLocationRow only contains the PK fields so now we need to get the SendMail column StringCollection fields = new StringCollection(); fields.Add(PPartnerLocationTable.GetSendMailDBName()); PPartnerLocationTable t = PPartnerLocationAccess.LoadByPrimaryKey(PartnerKey, PartnerLocationRow.SiteKey, PartnerLocationRow.LocationKey, fields, Transaction); if ((t != null) && (t.Rows.Count > 0) && (((PPartnerLocationRow)t.Rows[0]).SendMail == false)) { ignoredKeyList.Add(PartnerKey); continue; } } RecordCounter += 1; TLogging.LogAtLevel(1, "Preparing Partner " + PartnerKey + " (Record Number " + RecordCounter + ")"); // add row for partner to extract and fill with contents MExtractRow NewRow = ExtractTable.NewRowTyped(); NewRow.ExtractId = AExtractId; NewRow.PartnerKey = PartnerKey; NewRow.SiteKey = Convert.ToInt64(PartnerLocationRow[PPartnerLocationTable.GetSiteKeyDBName()]); NewRow.LocationKey = Convert.ToInt32(PartnerLocationRow[PPartnerLocationTable.GetLocationKeyDBName()]); // only add row if it does not already exist for this partner if (AIgnoreDuplicates || !ExtractTable.Rows.Contains(new object[] { NewRow.ExtractId, NewRow.PartnerKey, NewRow.SiteKey })) { ExtractTable.Rows.Add(NewRow); } } } if (ExtractTable.Rows.Count > 0) { // update field in extract master for quick access to number of partners in extract MExtractMasterTable ExtractMaster = MExtractMasterAccess.LoadByPrimaryKey(AExtractId, Transaction); ExtractMaster[0].KeyCount = ExtractTable.Rows.Count; ExtractTable.ThrowAwayAfterSubmitChanges = true; // no need to keep data as this increases speed significantly MExtractAccess.SubmitChanges(ExtractTable, Transaction); MExtractMasterAccess.SubmitChanges(ExtractMaster, Transaction); } }); AKeyCount = RecordCounter; AIgnoredKeyList = ignoredKeyList; }
/// <summary> /// convert partner status from enum to string /// </summary> /// <param name="APartnerStatusCode"></param> /// <returns></returns> public static String StdPartnerStatusCodeEnumToString(TStdPartnerStatusCode APartnerStatusCode) { // Return the Enum value from the 4th character onwards (strip out prefix) return APartnerStatusCode.ToString("G").Substring(4); }
public static Boolean VerifyPartnerAndGetDetails(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out Boolean AIsMergedPartner, out Boolean AUserCanAccessPartner) { APartnerShortName = ""; APartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. AIsMergedPartner = false; AUserCanAccessPartner = false; TDBTransaction ReadTransaction; Boolean NewTransaction; StringCollection RequiredColumns; PPartnerTable PartnerTable; Boolean ReturnValue = true; TStdPartnerStatusCode PartnerStatus = TStdPartnerStatusCode.spscACTIVE; // initialise outout Arguments if (APartnerKey != 0) { // only some fields are needed RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); RequiredColumns.Add(PPartnerTable.GetPartnerClassDBName()); RequiredColumns.Add(PPartnerTable.GetStatusCodeDBName()); RequiredColumns.Add(PPartnerTable.GetRestrictedDBName()); RequiredColumns.Add(PPartnerTable.GetUserIdDBName()); RequiredColumns.Add(PPartnerTable.GetGroupIdDBName()); ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); try { PartnerTable = PPartnerAccess.LoadByPrimaryKey(APartnerKey, RequiredColumns, ReadTransaction, null, 0, 0); } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.VerifyPartner: committed own transaction."); } } if (PartnerTable.Rows.Count == 0) { ReturnValue = false; } else { // since we loaded by primary key there must just be one partner row APartnerShortName = PartnerTable[0].PartnerShortName; APartnerClass = SharedTypes.PartnerClassStringToEnum(PartnerTable[0].PartnerClass); PartnerStatus = SharedTypes.StdPartnerStatusCodeStringToEnum(PartnerTable[0].StatusCode); // check if user can access partner if (Ict.Petra.Server.MPartner.Common.TSecurity.CanAccessPartner(PartnerTable[0]) == TPartnerAccessLevelEnum.palGranted) { AUserCanAccessPartner = true; } // check if partner is merged if (PartnerStatus == TStdPartnerStatusCode.spscMERGED) { AIsMergedPartner = true; } else { AIsMergedPartner = false; } ReturnValue = true; } } else { // Return result as valid if Partner Key is 0. ReturnValue = true; } return(ReturnValue); }
/// <summary> /// convert partner status from enum to string /// </summary> /// <param name="APartnerStatusCode"></param> /// <returns></returns> public static String StdPartnerStatusCodeEnumToString(TStdPartnerStatusCode APartnerStatusCode) { // Return the Enum value from the 4th character onwards (strip out prefix) return(APartnerStatusCode.ToString("G").Substring(4)); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <param name="ATransaction">Open DB Transaction.</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus, TDBTransaction ATransaction) { Boolean ReturnValue; StringCollection RequiredColumns; PPartnerTable PartnerTable; // initialise out Arguments APartnerShortName = ""; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerStatus = TStdPartnerStatusCode.spscINACTIVE; if (APartnerKey != 0) { // only some fields are needed RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); RequiredColumns.Add(PPartnerTable.GetPartnerClassDBName()); RequiredColumns.Add(PPartnerTable.GetStatusCodeDBName()); PartnerTable = PPartnerAccess.LoadByPrimaryKey(APartnerKey, RequiredColumns, ATransaction, null, 0, 0); if (PartnerTable.Rows.Count == 0) { ReturnValue = false; } else { // since we loaded by primary key there must just be one partner row APartnerShortName = PartnerTable[0].PartnerShortName; APartnerClass = SharedTypes.PartnerClassStringToEnum(PartnerTable[0].PartnerClass); APartnerStatus = SharedTypes.StdPartnerStatusCodeStringToEnum(PartnerTable[0].StatusCode); ReturnValue = true; } } else { // Return result as valid if Partner Key is 0. ReturnValue = true; } return ReturnValue; }