public static List<ApplicationUser> GetCreditUserSearch(string searchTerm)
{
List<ApplicationUser> usrs = null;
List<string> admins = null;
List<string> editors = null;
using (CarrotCMSDataContext _db = CarrotCMSDataContext.Create()) {
admins = (from ur in _db.membership_UserRoles
join u in _db.membership_Users on ur.UserId equals u.Id
join r in _db.membership_Roles on ur.RoleId equals r.Id
join ud in _db.carrot_UserDatas on u.Id equals ud.UserKey
where r.Name == CMSGroup_Admins
select ud.UserKey).ToList();
editors = (from sm in _db.carrot_UserSiteMappings
join ud in _db.carrot_UserDatas on sm.UserId equals ud.UserId
where sm.SiteID == SiteData.CurrentSiteID
select ud.UserKey).ToList();
}
using (var securityHelper = new SecurityHelper()) {
usrs = (from u in securityHelper.DataContext.Users
where (u.UserName.Contains(searchTerm)
|| u.Email.Contains(searchTerm))
&& admins.Union(editors).Contains(u.Id)
select securityHelper.UserManager.FindByName(u.UserName)).Take(50).ToList();
}
return usrs;
}