示例#1
0
文件: ChatHub.cs 项目: jascenci/Chat
        // Send message to Groups
        public void SendMessage(string message)
        {
            ChatMessage chatMessage = new ChatMessage();
            ChatUserVM cuVM = new ChatUserVM();

            var user = activeUsers.Find(u => u.ConnectionId == Context.ConnectionId);
            var admin = _service.GetChatUserByConnectionId(Context.ConnectionId);

            if (user != null)
            {
                string roomName = Clients.Caller.roomName;

                var room = _service.GetActiveRoomByName(roomName);

                chatMessage.ChatRoomId = room.ChatRoomId;
                chatMessage.Content = message;
                chatMessage.MessageSent = GetLocalTime();
                chatMessage.UserName = user.userName;

                _service.AddChatMessage(chatMessage);

                room.ChatMessages.Add(chatMessage);
                _service.UpdateChatRoom(room);

                Clients.OthersInGroup(roomName).DisplayMessage(user.userName, message, roomName);
            }
            else if (admin != null)
            {
                string roomName = Clients.Caller.roomName;

                var room = _service.GetActiveRoomByName(roomName);
                var chatAdminUser = _service.GetChatUserByConnectionId(Context.ConnectionId);

                chatMessage.ChatRoomId = room.ChatRoomId;
                chatMessage.ChatRoom = room;
                chatMessage.Content = message;
                chatMessage.MessageSent = GetLocalTime();
                chatMessage.UserName = admin.UserName;
                chatMessage.ChatUserId = chatAdminUser.ChatUserId;
                chatMessage.ChatUser = chatAdminUser;

                _service.AddChatMessage(chatMessage);

                room.ChatMessages.Add(chatMessage);
                _service.UpdateChatRoom(room);

                cuVM.ChatUserId = chatAdminUser.ChatUserId;
                cuVM.FirstName = chatAdminUser.FirstName;
                cuVM.LastName = chatAdminUser.LastName;

                cuVM.UserName = chatAdminUser.UserName;

                //Clients.OthersInGroup(roomName).DisplayMessage(admin, message);
                Clients.OthersInGroup(roomName).DisplayMessageToClient(cuVM.FirstName, message);

            }
        }
示例#2
0
        // User Detail
        public ActionResult UserDetails(string userName)
        {
            var currentUser = _service.GetChatUserByUsername(HttpContext.User.Identity.Name.ToString());
            ViewBag.IsAdmin = currentUser.IsAdmin;
            ViewBag.UserNameFullName = currentUser.FirstName + " " + currentUser.LastName;
            ViewBag.MenuBar = "ControlPanel";

            var user = _service.GetChatUserByUsername(userName);

            ChatUserVM userVM = new ChatUserVM();

            userVM.ChatUserId = user.ChatUserId;
            userVM.UserName = user.UserName;
            userVM.FirstName = user.FirstName;
            userVM.LastName = user.LastName;
            userVM.Email = user.Email;
            userVM.ConnectionId = user.ConnectionId;
            if (user.IsAdmin == true)
            {
                userVM.IsAdmin = "Yes";
            }
            else
            {
                userVM.IsAdmin = "No";
            }
            switch (user.Status)
            {
                case 1:
                    userVM.Status = "Active";
                    break;
                case 0:
                    userVM.Status = "Terminated";
                    break;
                default:
                    userVM.Status = "";
                    break;
            }

            return View(userVM);
        }
示例#3
0
        public ActionResult EditUser(ChatUserVM userVM)
        {
            var user = _service.GetChatUserByUsername(userVM.UserName);

            user.ChatUserId = userVM.ChatUserId;
            user.Email = userVM.Email;
            user.FirstName = userVM.FirstName;
            user.IsAdmin = userVM.IsAdminBool;
            user.LastName = userVM.LastName;
            user.Password = userVM.Password;
            user.Status = userVM.SelectedStatus;

            if (ModelState.IsValid)
            {
                _service.UpdateAdminUser(user);
                return RedirectToAction("UserDetails", new { userName = user.UserName});
            }

            return View(user);
        }
示例#4
0
        public ActionResult ManageUsersMain()
        {
            var currentUser = _service.GetChatUserByUsername(HttpContext.User.Identity.Name.ToString());
            ViewBag.IsAdmin = currentUser.IsAdmin;

            ViewBag.MenuBar = "ControlPanel";
            ViewBag.UserNameFullName = currentUser.FirstName + " " + currentUser.LastName;

            var users = _repo.GetActiveAdminChatUsers();

            List<ChatUserVM> listOfChatUsers = new List<ChatUserVM>();

            foreach (var user in users)
            {
                ChatUserVM viewModelForChatUser = new ChatUserVM();

                viewModelForChatUser.FirstName = user.FirstName;
                viewModelForChatUser.LastName = user.LastName;
                if (user.IsAdmin == true)
                {
                    viewModelForChatUser.IsAdmin = "Yes";
                }
                else
                {
                    viewModelForChatUser.IsAdmin = "No";
                }
                switch (user.Status)
                {
                    case 1:
                        viewModelForChatUser.Status = "Active";
                        break;
                    case 0:
                        viewModelForChatUser.Status = "Terminated";
                        break;
                    default:
                        viewModelForChatUser.Status = "";
                        break;
                }
                viewModelForChatUser.UserName = user.UserName;
                viewModelForChatUser.ChatUserId = user.ChatUserId;
                listOfChatUsers.Add(viewModelForChatUser);

            }

            return View(listOfChatUsers);
        }
示例#5
0
        public ActionResult EditUser(int userId)
        {
            var user = _repo.FindUserById(userId);

            var currentUser = _service.GetChatUserByUsername(HttpContext.User.Identity.Name.ToString());

            ViewBag.IsAdmin = currentUser.IsAdmin;
            ViewBag.UserNameFullName = currentUser.FirstName + " " + currentUser.LastName;
            ViewBag.MenuBar = "ControlPanel";

            ChatUserVM chatUserVM = new ChatUserVM();
            chatUserVM.ChatUserId = user.ChatUserId;
            chatUserVM.Email = user.Email;
            chatUserVM.FirstName = user.FirstName;
            chatUserVM.IsAdminBool = user.IsAdmin;
            chatUserVM.LastName = user.LastName;
            chatUserVM.Password = user.Password;
            chatUserVM.SelectedStatus = user.Status;
            List<UserStatus> statuses = new List<UserStatus>(){new UserStatus{ Id= 0, Name= "Inactive"}, new UserStatus{ Id = 1, Name="Active"}};

            chatUserVM.DDLStatusTypes = new SelectList(statuses, "Id", "Name", user.Status);

            chatUserVM.UserName = user.UserName;

            return View(chatUserVM);
        }