protected internal UserStaffMemberResult (string identityName , string staffNumber , UserStaffMemberResultType result ) { IdentityName = identityName; StaffNumber = staffNumber; Result = result; }
/// <summary> /// Returns an object indicating if the parameter passed /// is a Nedbank staff member /// <br />example: /// <br /> /// HttpContext.Current.Request.LogonUserIdentity.Name /// .IsStaffMember() /// </summary> /// <param name="identityName"></param> /// <returns>object of type UserStaffMemberResult</returns> public static UserStaffMemberResult IsStaffMember (this string identityName ) { string staffNumber = string.Empty; UserStaffMemberResultType result = UserStaffMemberResultType.Unknown; identityName = identityName.ToLower(); if (identityName.StartsWith("nedcor\\")) { string[] identityParts = identityName.Split(new string[] { "\\" }, StringSplitOptions.None) ; string usercode = string.Join ("\\" , identityParts , 1 , identityParts.Length - 1 ) ; if ( (usercode.StartsWith("nb") || usercode.StartsWith("cc") || usercode.StartsWith("adm") ) ) { usercode = usercode.Substring(2); if (usercode.StartsWith("m")) { usercode = usercode.Substring(1); } if (usercode.Length == 6 && digits.IndexOf(usercode.Substring(0, 1)) >= 0 && digits.IndexOf(usercode.Substring(1, 1)) >= 0 && digits.IndexOf(usercode.Substring(2, 1)) >= 0 && digits.IndexOf(usercode.Substring(3, 1)) >= 0 && digits.IndexOf(usercode.Substring(4, 1)) >= 0 && digits.IndexOf(usercode.Substring(5, 1)) >= 0 ) { staffNumber = usercode; result = UserStaffMemberResultType .IsStaffMember ; } else { result = UserStaffMemberResultType .IdentitySuffixNotSixDigits ; } } else { result = UserStaffMemberResultType .IdentityNotNBCCOrADM ; } } else { result = UserStaffMemberResultType .IdentityNotOnNedcorDomain ; } return(new UserStaffMemberResult (identityName , staffNumber , result ) ); }