public async Task <IActionResult> Mine() { var user = await GetKahlaUser(); var personalRelations = (await _dbContext.PrivateConversations .AsNoTracking() .Where(t => t.RequesterId == user.Id || t.TargetId == user.Id) .Select(t => user.Id == t.RequesterId ? t.TargetUser : t.RequestUser) .ToListAsync()) .Select(t => t.Build(_onlineJudger)) .OrderBy(t => t.NickName); var groups = await _dbContext.GroupConversations .AsNoTracking() .Where(t => t.Users.Any(p => p.UserId == user.Id)) .OrderBy(t => t.GroupName) .ToListAsync(); var searched = SearchedGroup.Map(groups); return(Json(new MineViewModel { Code = ErrorType.Success, Message = "Successfully get all your groups and friends.", Users = personalRelations, Groups = searched, })); }
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." })); }
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." })); }
public async Task <IActionResult> GroupSummary([Required] int id) { var group = await _dbContext.GroupConversations.SingleOrDefaultAsync(t => t.Id == id); if (group == null) { return(this.Protocol(ErrorType.NotFound, $"We can not find a group with id: {id}!")); } var view = new SearchedGroup(group); return(this.Protocol(new AiurValue <SearchedGroup>(view) { Code = ErrorType.Success, Message = "Successfully get your group result." })); }
public async override Task OnGroupConnected(SearchedGroup group) { await MuteGroup(group.Name, true); }
public virtual Task OnGroupConnected(SearchedGroup group) => Task.CompletedTask;
public override async Task OnGroupConnected(SearchedGroup group) { }