public IEnumerable <UserListModel> SearchUsersRequest(string query, SearchByEnum searchBy) { var list = new List <User>(); switch (searchBy) { case SearchByEnum.Name: list = _userManager.Users .Where(x => x.NormalizedUserName.Contains(query.ToUpper()) && x.UserName != Thread.CurrentPrincipal.Identity.Name).ToList(); break; case SearchByEnum.Email: list = _userManager.Users .Where(x => x.NormalizedEmail.Contains(query.ToUpper()) && x.UserName != Thread.CurrentPrincipal.Identity.Name).ToList(); break; case SearchByEnum.Phone: list = _userManager.Users .Where(x => x.PhoneNumber.Contains(query) && x.UserName != Thread.CurrentPrincipal.Identity.Name).ToList(); break; default: return(null); } list = list.Where(x => _chat.IsUsersInChat(x, Thread.CurrentPrincipal.Identity.Name)).ToList(); return(list.Select(z => new UserListModel() { Name = z.UserName, Email = z.Email, PhoneNumber = z.PhoneNumber })); }
public async Task <IEnumerable <UserListModel> > GetRequestUserList(string query, SearchByEnum searchBy) { return(await connection.InvokeAsync <IEnumerable <UserListModel> >("SearchUsersRequest", query, searchBy)); }
public IEnumerable <UserListModel> SearchUsersRequest(string query, SearchByEnum searchBy) { Thread.CurrentPrincipal = Context.User; logger.Debug($"User {Context.User.Identity.Name} search by {searchBy} with param {query}"); return(_user.SearchUsersRequest(query, searchBy)); }