// Connect/Create Admin ChatUser and add to "adminGroup" Group and activeAdminUsers List public void ConnectAdminUser(string username) { ChatUser admin = _service.GetChatUserByUsername(username); if (admin != null) { admin.IsOnline = true; admin.LogInTime = GetLocalTime(); //admin.LogInTime = DateTime.Now; admin.ConnectionId = Context.ConnectionId; JoinAdminGroup("adminGroup"); _service.UpdateAdminUser(admin); } else { } UserFeedVM user = new UserFeedVM(); user.FirstName = admin.FirstName; user.LastName = admin.LastName; user.LogInTime = admin.LogInTime; user.UserName = admin.UserName; // TODO: Change to only call adminGroup Clients.Group("adminGroup").addUser(user); Clients.Group("adminGroup").addOnlineUser(user); }
// Methods for Control Panel public ActionResult LiveUserRoomFeed() { ViewBag.MenuBar = "ControlPanel"; var currentUser = _service.GetChatUserByUsername(HttpContext.User.Identity.Name.ToString()); ViewBag.UserNameFullName = currentUser.FirstName + " " + currentUser.LastName; if (currentUser.IsOnline == true) { currentUser.IsOnline = false; _service.UpdateAdminUser(currentUser); } ViewBag.IsAdmin = currentUser.IsAdmin; ViewBag.UserName = currentUser.FirstName + " " + currentUser.LastName; ViewBag.User = currentUser.UserName; var onlineUsers = _service.GetOnlineUsers(); var rooms = _service.GetActiveChatRooms(); LiveUserRoomFeedVM feed = new LiveUserRoomFeedVM(); foreach (var ou in onlineUsers) { UserFeedVM user = new UserFeedVM(); user.FirstName = ou.FirstName; user.LastName = ou.LastName; user.LogInTime = ou.LogInTime; user.UserName = ou.UserName; feed.OnlineUsers.Add(user); } foreach (var r in rooms) { RoomFeedVM room = new RoomFeedVM(); if (r.HasAdminUser == true) { room.BeingHelped = "Yes"; } else { room.BeingHelped = "No"; } room.ClientId = r.ChatUserId; if (r.ChatUser != null) { room.HelperName = r.ChatUser.FirstName + " " + r.ChatUser.LastName; } else { room.HelperName = string.Empty; } room.RoomName = r.ChatRoomName; room.StartTime = r.StartTime; room.UsersInRoom = r.ActiveUserCount; feed.ActiveRooms.Add(room); } return View(feed); }