public static void AddModerator(this List <ChatHubRoom> rooms, ChatHubModerator moderator, int roomId) { var room = rooms.FirstOrDefault(item => item.Id == roomId); if (room != null && !room.Moderators.Any(item => item.Id == moderator.Id)) { room.Moderators.Add(moderator); } }
public ChatHubModerator CreateChatHubModeratorClientModel(ChatHubModerator moderator) { return(new ChatHubModerator() { Id = moderator.Id, ModeratorDisplayName = moderator.ModeratorDisplayName, ChatHubUserId = moderator.ChatHubUserId, }); }
public void DeleteChatHubModerator(int ModeratorId) { try { ChatHubModerator ChatHubModerator = db.ChatHubModerator.Where(item => item.Id == ModeratorId).FirstOrDefault(); db.ChatHubModerator.Remove(ChatHubModerator); db.SaveChanges(); } catch { throw; } }
public ChatHubModerator AddChatHubModerator(ChatHubModerator ChatHubModerator) { try { db.ChatHubModerator.Add(ChatHubModerator); db.SaveChanges(); return(ChatHubModerator); } catch { throw; } }
public static void RemoveModerator(this List <ChatHubRoom> rooms, ChatHubModerator moderator, int roomId) { var room = rooms.FirstOrDefault(item => item.Id == roomId); if (room != null) { var modi = room.Moderators.FirstOrDefault(item => item.Id == moderator.Id); if (modi != null) { room.Moderators.Remove(modi); } } }
public async Task AddModerator(int userId, int roomId) { try { ChatHubUser user = await this.GetChatHubUserAsync(); ChatHubUser targetUser = await this.chatHubRepository.GetUserByIdAsync(userId); if (user != null && targetUser != null) { var room = this.chatHubRepository.GetChatHubRoom(roomId); if (user.UserId != room.CreatorId && !Context.User.HasClaim(ClaimTypes.Role, RoleNames.Admin)) { throw new HubException("Only room creators and administrators can add moderations."); } ChatHubModerator moderator = this.chatHubRepository.GetChatHubModerator(targetUser.UserId); if (moderator == null) { moderator = new ChatHubModerator() { ChatHubUserId = targetUser.UserId, ModeratorDisplayName = targetUser.DisplayName }; moderator = this.chatHubRepository.AddChatHubModerator(moderator); } ChatHubRoomChatHubModerator room_moderator = new ChatHubRoomChatHubModerator() { ChatHubRoomId = roomId, ChatHubModeratorId = moderator.Id, }; this.chatHubRepository.AddChatHubRoomChatHubModerator(room_moderator); var targetModeratorClientModel = this.chatHubService.CreateChatHubModeratorClientModel(moderator); await Clients.Group(roomId.ToString()).SendAsync("AddModerator", targetModeratorClientModel, roomId); } } catch (Exception ex) { throw new HubException(ex.Message); } }