Esempio n. 1
0
        public async Task <IActionResult> SearchEverything(SearchEverythingAddressModel model)
        {
            var users = _dbContext
                        .Users
                        .AsNoTracking()
                        .Where(t =>
                               t.MakeEmailPublic && t.Email.Contains(model.SearchInput) ||
                               t.NickName.Contains(model.SearchInput));

            var groups = _dbContext
                         .GroupConversations
                         .AsNoTracking()
                         .Where(t => t.GroupName.Contains(model.SearchInput));

            var searched = SearchedGroup.Map(await groups.ToListAsync());

            return(Json(new SearchEverythingViewModel
            {
                UsersCount = await users.CountAsync(),
                GroupsCount = await groups.CountAsync(),
                Users = await users.Take(model.Take).ToListAsync(),
                Groups = searched,
                Code = ErrorType.Success,
                Message = "Search result is shown."
            }));
        }
Esempio n. 2
0
        public async Task <IActionResult> SearchEverything(SearchEverythingAddressModel model)
        {
            var user = await GetKahlaUser();

            var users = _dbContext
                        .Users
                        .AsNoTracking()
                        .Where(t =>
                               t.MakeEmailPublic && t.Email.Contains(model.SearchInput.ToLower(), StringComparison.CurrentCultureIgnoreCase) ||
                               t.NickName.ToLower().Contains(model.SearchInput.ToLower(), StringComparison.CurrentCultureIgnoreCase));

            var groups = _dbContext
                         .GroupConversations
                         .Include(t => t.Users)
                         .AsNoTracking()
                         .Where(t => t.GroupName.Contains(model.SearchInput.ToLower(), StringComparison.CurrentCultureIgnoreCase));

            var searched = SearchedGroup.Map(await groups.ToListAsync(), user.Id);

            return(this.AiurJson(new SearchEverythingViewModel
            {
                UsersCount = await users.CountAsync(),
                GroupsCount = await groups.CountAsync(),
                Users = await users.Take(model.Take).ToListAsync(),
                Groups = searched,
                Code = ErrorType.Success,
                Message = "Search result is shown."
            }));
        }