コード例 #1
0
        /// <summary>
        /// 移除消息.
        /// </summary>
        /// <param name="group"></param>
        /// <param name="messageID"></param>
        public void RemoveMessage(string group, long messageID)
        {
            // 取得当前用户.
            // 查询用户。
            var user = GetCurrentChatRoomUser();

            // 取得用户 ip地址.
            string ipAddress = IpGetter.GetIpAddress(HttpContext.Current.Request);


            if (!user.IsAdmin)
            {
                Clients.Client(Context.ConnectionId).showErrorMessage("权限不足!");
                return;
            }

            string resultMsg = null;

            // 拒绝消息.
            bool result = chatRoomMessageService.RefuseMessage(messageID, user.DisplayUserNickName, ipAddress, ref resultMsg);

            if (!result)
            {
                // 失败的情况下.
                Clients.Client(Context.ConnectionId).showErrorMessage(resultMsg);
                return;
            }

            // 成功的情况下, 通知所有的 客户端, 移除消息.

            // 调用 客户端的 removeMessage 方法.
            Clients.Group(group).removeMessage(messageID);
        }
コード例 #2
0
        /// <summary>
        /// 通过审核.
        /// </summary>
        /// <param name="group"></param>
        /// <param name="messageID"></param>
        public void PassMessage(string group, long messageID)
        {
            // 取得当前用户.
            // 查询用户。
            var user = GetCurrentChatRoomUser();

            // 取得用户 ip地址.
            string ipAddress = IpGetter.GetIpAddress(HttpContext.Current.Request);

            if (!user.IsAdmin)
            {
                Clients.Client(Context.ConnectionId).showErrorMessage("权限不足!");
                return;
            }


            string resultMsg = null;

            // 通过审核.
            bool result = chatRoomMessageService.PassMessage(messageID, user.DisplayUserNickName, ipAddress, ref resultMsg);

            if (!result)
            {
                // 失败的情况下.
                Clients.Client(Context.ConnectionId).showErrorMessage(resultMsg);
                return;
            }
            // 成功的情况下, 通知所有的 客户端, 显示消息.


            // 查询数据库中的指定消息, 目的, 查询出关联信息.
            ChatRoomMessage dbMsg = chatRoomMessageService.GetChatRoomMessage(messageID);
            // 类型转换.
            var clientMsg = GetClientMessage(dbMsg);


            // 调用 客户端的 showNewMessage 方法.
            Clients.Group(group).showNewMessage(clientMsg);

            // 调用 管理员组的 PassMessageFinish(messageID) 方法.
            Clients.Group(GetAdminGroupCode(group)).passMessageFinish(messageID);
        }
コード例 #3
0
        // GET: MusicShop
        public ActionResult Index(string type, string searchString)
        {
            string   ipAddress = IpGetter.GetIPAddress();
            IpRecord record    = db.IpRecords.Where(ip => ip.IpAddress == ipAddress).SingleOrDefault();

            if (record == null)
            {
                IpRecord newRecord = new IpRecord()
                {
                    IpAddress       = ipAddress,
                    TimeOfRecord    = DateTime.UtcNow,
                    LastTimeOfIssue = DateTime.UtcNow
                };
                db.IpRecords.Add(newRecord);
                db.SaveChanges();
            }
            else
            {
                record.LastTimeOfIssue = DateTime.UtcNow;
                db.Entry(record).State = EntityState.Modified;
                db.SaveChanges();
            }

            InstrumentType insType = InstrumentType.Guitar;

            ViewBag.type = new SelectList(Enum.GetValues(typeof(InstrumentType)));

            var instruments = from ins in db.Instruments
                              select ins;

            if (!string.IsNullOrEmpty(searchString))
            {
                instruments = instruments.Where(s => (s.Manufacturer + " " + s.Model).Contains(searchString));
            }

            if (type != "All" && Enum.TryParse(type, out insType))
            {
                instruments = instruments.Where(s => s.Type == insType);
            }

            return(View(instruments));
        }
コード例 #4
0
        /// <summary>
        /// 发送消息.
        /// </summary>
        /// <param name="group"></param>
        /// <param name="message"></param>
        public void NewMessage(string group, string message, long?replyMessageId = null)
        {
            if (logger.IsDebugEnabled)
            {
                logger.DebugFormat("NewMessage ( {0}, {1}, {2} ) Start!", group, message, replyMessageId);
            }


            if (String.IsNullOrEmpty(message) || String.IsNullOrWhiteSpace(message))
            {
                Clients.Client(Context.ConnectionId).showErrorMessage("消息为空!");
                return;
            }

            message = message.Trim();
            message = message.Replace("\n", "<br/>\n");

            if (message.Length > 500)
            {
                Clients.Client(Context.ConnectionId).showErrorMessage("消息超长!");
                return;
            }



            // 取得当前用户.
            // 查询用户。
            var user = UserList.SingleOrDefault(u => u.ContextID == Context.ConnectionId);

            // 取得用户 ip地址.
            string ipAddress = IpGetter.GetIpAddress(HttpContext.Current.Request);


            // 匿名用户的情况下,需要检查黑名单.
            //if (user.UserID == 1)
            //{
            //    if (this.chatRoomBlackNameList.Contains(ipAddress))
            //    {
            //        // 在黑名单里面.
            //        Clients.Client(Context.ConnectionId).showErrorMessage("网络连接上存在一些问题,请稍候再尝试!");

            //        if (logger.IsInfoEnabled)
            //        {
            //            logger.InfoFormat("黑名单用户 {0},尝试发送消息:{1} ", ipAddress, message);
            //        }
            //        return;
            //    }
            //}



            ChatRoomMessage chatroomMessage = new ChatRoomMessage()
            {
                // 房间ID.
                HouseID = group,

                // 发信人.
                MessageSenderId = user.UserID,

                // 发件人昵称.
                MessageSenderNickName = user.NickName,

                // 回复消息ID.
                ReplyMessageId = replyMessageId,

                // 消息内容.
                MessageContent = message,

                // IP.
                IpAddress = ipAddress,


                // 数据有效.
                IsActive = true,
            };


            string resultMsg = null;
            bool   result    = chatRoomMessageService.CreateNewMessage(chatroomMessage, ref resultMsg);

            if (!result)
            {
                // 消息发送失败.
                Clients.Client(Context.ConnectionId).showErrorMessage(resultMsg);
                return;
            }



            // 查询数据库中的指定消息, 目的, 查询出关联信息.
            ChatRoomMessage dbMsg = chatRoomMessageService.GetChatRoomMessage(chatroomMessage.MessageID);
            // 类型转换.
            var clientMsg = GetClientMessage(dbMsg);


            // 消息发送成功
            if (dbMsg.AuditingFlag == ChatRoomMessage.AUDITING_IS_PASS)
            {
                if (logger.IsDebugEnabled)
                {
                    logger.DebugFormat("房间{0}, 用户{1}, 昵称{2}, 发送的消息{3}, 自动审核通过了!",
                                       group, user.UserID, user.NickName, message);
                }


                // 调用 客户端的 showNewMessage 方法.
                Clients.Group(group).showNewMessage(clientMsg);
            }
            else
            {
                // 需要审核的.

                if (logger.IsDebugEnabled)
                {
                    logger.DebugFormat("房间{0}, 用户{1}, 昵称{2}, 发送的消息{3}, 等待审核通过!",
                                       group, user.UserID, user.NickName, message);
                }


                // 调用 管理员组端的 showTodoMessage 方法.
                Clients.Group(GetAdminGroupCode(group)).showTodoMessage(clientMsg);
            }
        }