Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        // 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);
        }