public static ICrmIdentityUser <T> ConvertToIdentityUser <TKey>(Entity entity, Action <ICrmIdentityUser <T>, Entity> PopulateUser = null) where TKey : IEquatable <TKey> { ICrmIdentityUser <T> user = new CrmIdentityUser <T>() { EntityName = entity.LogicalName, Key = entity.Id }; FillIdentityUser <T>((ICrmIdentityUser <T>)user, entity, PopulateUser); return((ICrmIdentityUser <T>)user); }
public Task <T> FindByNameAsync(string userName) { return(Task.Factory.StartNew <T>(() => { EntityCollection col = XrmCore.RetrieveByAttribute("appl_webuser", "appl_username", userName); if (col.Entities.Count > 0) { return (T)CrmIdentityUser <S> .ConvertToIdentityUser <S>(col.Entities.First()); } else { return default(T); } })); }
public Task <T> FindAsync(UserLoginInfo login) { return(Task.Factory.StartNew <T>(() => { Entity result = XrmCore.GetWebUserFromLogin(login.LoginProvider, login.ProviderKey); if (result != null) { return (T)CrmIdentityUser <S> .ConvertToIdentityUser <S>(result); } else { return default(T); } })); }
public Task <T> FindByIdAsync(S userId) { return(Task.Factory.StartNew <T>(() => { Entity e = null; if (typeof(S) == typeof(Guid) || typeof(S) == typeof(string)) { e = XrmCore.Retrieve("appl_webuser", Guid.Parse(Convert.ToString(userId))); } else if (typeof(S) == typeof(int)) { EntityCollection col = XrmCore.RetrieveByAttribute("appl_webuser", "appl_userid", Convert.ToString(userId), CacheResults: false); e = col.Entities.FirstOrDefault(); } return e == null ? default(T): (T)CrmIdentityUser <S> .ConvertToIdentityUser <S>(e); })); }