protected static void FillIdentityUser <TKey>(ICrmIdentityUser <TKey> user, Entity entity, Action <ICrmIdentityUser <TKey>, Entity> PopulateUser = null) where TKey : IEquatable <TKey> { user.AccessFailedCount = entity.GetAttributeValue <int>("appl_accessfailedcount"); user.Email = entity.GetAttributeValue <string>("appl_email"); user.EmailConfirmed = entity.GetAttributeValue <bool>("appl_emailconfirmed"); user.LockoutEnabled = entity.GetAttributeValue <bool>("appl_lockoutenabled"); user.LockoutEndDateUtc = entity.GetAttributeValue <DateTime?>("appl_lockoutenddateutc"); user.PasswordHash = entity.GetAttributeValue <string>("appl_passwordhash"); user.PhoneNumber = entity.GetAttributeValue <string>("appl_phonenumber"); user.PhoneNumberConfirmed = entity.GetAttributeValue <bool>("appl_phonenumberconfirmed"); user.TwoFactorEnabled = entity.GetAttributeValue <bool>("appl_twofactorenabled"); user.UserName = entity.GetAttributeValue <string>("appl_username"); user.Contact = entity.Contains("appl_contactid") ? entity.GetAttributeValue <EntityReference>("appl_contactid") : null; user.SecurityStamp = entity.GetAttributeValue <string>("appl_securitystamp"); if (string.IsNullOrEmpty(user.SecurityStamp)) { // Always ensure the security stamp is present. If not, create a new one and save it to the backend. user.SecurityStamp = Guid.NewGuid().ToString(); entity["appl_securitystamp"] = user.SecurityStamp; XrmCore.UpdateEntity(entity); } if (PopulateUser != null) { PopulateUser(user, entity); } }
public static Entity ConvertToEntity <TKey>(ICrmIdentityUser <T> user) where TKey : IEquatable <TKey> { Entity e = new Entity(user.EntityName, user.Key); FillEntity(e, user); return(e); }
protected static void FillEntity <TKey>(Entity entity, ICrmIdentityUser <TKey> user) where TKey : IEquatable <TKey> { entity["appl_contactid"] = user.Contact; entity["appl_username"] = user.UserName; entity["appl_passwordhash"] = user.PasswordHash; entity["appl_email"] = user.Email; entity["appl_emailconfirmed"] = user.EmailConfirmed; entity["appl_phonenumber"] = user.PhoneNumber; entity["appl_phonenumberconfirmed"] = user.PhoneNumberConfirmed; entity["appl_twofactorenabled"] = user.TwoFactorEnabled; entity["appl_lockoutenabled"] = user.LockoutEnabled; entity["appl_lockoutenddateutc"] = user.LockoutEndDateUtc.HasValue ? user.LockoutEndDateUtc.Value.ToUniversalTime() : (DateTime?)null; entity["appl_accessfailedcount"] = user.AccessFailedCount; entity["appl_securitystamp"] = user.SecurityStamp; }