예제 #1
0
        public void SetMessageAsRead(string id)
        {
            if (ContextInfo == null)
            {
                ContextInfo = ContextInfoInitilizer.GetContextInfo(Context.Request.GetHttpContext(), Context.User, Context.QueryString["SessionID"]);
            }

            if (ContextInfo.IsUserAuthenticated)
            {
                MessageModel messageModel = new MessageModel( );//from ;; this who will recieve read update
                // MessageModel messageModelTo = new MessageModel();//to ; this how read the message

                using (MessageBAL messageBAL = new MessageBAL(ContextInfo))
                {
                    messageBAL.SetMessageAsRead(id);
                    messageModel.ID = id;

                    messageBAL.GetMessageModel(messageModel, ContextInfo.UserID);
                    //  messageBAL.GetMessageModel(messageModelFrom, messageModelTo.FromUserID);

                    //notify the message sender that his message is read by the reader
                    foreach (AspNetUserConnectionModel aspNetUserConnectionModel in messageModel.FromUserModel.AspNetUserConnectionModelList)
                    {
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).ReadMessageUpdated(id);
                    }

                    //notify the reader that the message set as read successfully
                    foreach (AspNetUserConnectionModel aspNetUserConnectionModel in messageModel.ToUserModel.AspNetUserConnectionModelList)
                    {
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).messageSetAsReadSuccessfully(id);
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).updateNotReadCount(messageBAL.GetNotFromMeAndNotReadCountByUserID(messageModel.ToUserID));
                    }
                }
            }
        }
예제 #2
0
        public void FireUpdateNotReadCountForCurrentConnection()
        {
            if (ContextInfo == null)
            {
                ContextInfo = ContextInfoInitilizer.GetContextInfo(Context.Request.GetHttpContext(), Context.User, Context.QueryString["SessionID"]);
            }

            using (MessageBAL messageBAL = new MessageBAL(ContextInfo))
            {
                Clients.Client(Context.ConnectionId).updateNotReadCount(messageBAL.GetNotFromMeAndNotReadCountByUserID(ContextInfo.UserID));
            }
        }
예제 #3
0
        // GET: User/Create
        public ActionResult Create(BaseModel baseModel)
        {
            MessageModel messageModel = new MessageModel();

            messageModel.CopyBaseModel(baseModel);

            using (MessageBAL messageBAL = new MessageBAL(ContextInfo))
            {
                messageBAL.PrepareMessageModel(messageModel);
            }

            return(View(messageModel));
        }
예제 #4
0
        public JsonResult GetMyMessagesByOtherUser(string userID, int page, int pageSize)
        {
            GenericListModel <MessageModel> baseListModel = new GenericListModel <MessageModel>();

            using (MessageBAL userBAL = new MessageBAL(ContextInfo))
            {
                baseListModel = userBAL.GetMyMessagesByOtherUser(userID, page, pageSize);
            }

            return(Json(new
            {
                baseModel = baseListModel
            }, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        public JsonResult ListUsersWithLastMessageByCurrentUser()
        {
            //Thread.Sleep(10000) ;
            GenericListModel <UserModel> baseListModel = new GenericListModel <UserModel>();

            using (MessageBAL userBAL = new MessageBAL(ContextInfo))
            {
                baseListModel = userBAL.ListUsersWithLastMessageByCurrentUser();
            }

            return(Json(new
            {
                baseModel = baseListModel,
                NotReadCount = baseListModel.List.Where(x => x.LastMessageModel.NotFromMeAndNotRead).Count()
            }, JsonRequestBehavior.AllowGet));
        }
예제 #6
0
        public MessageModel SendMessage(string toUserID, string messageText)
        {
            if (ContextInfo == null)
            {
                ContextInfo = ContextInfoInitilizer.GetContextInfo(Context.Request.GetHttpContext(), Context.User, Context.QueryString["SessionID"]);
            }

            if (ContextInfo.IsUserAuthenticated)
            {
                MessageModel messageModelFrom = new MessageModel();
                MessageModel messageModelTo   = new MessageModel();

                messageModelFrom.ToUserID    = toUserID;
                messageModelFrom.MessageText = messageText;
                messageModelFrom.FromUserID  = ContextInfo.UserID;

                using (MessageBAL messageBAL = new MessageBAL(ContextInfo))
                {
                    messageBAL.Create(messageModelFrom);
                    messageModelTo.ID = messageModelFrom.ID;
                    messageModelFrom.SuccessesList.Clear();

                    messageBAL.GetMessageModel(messageModelFrom, messageModelFrom.FromUserID);
                    messageBAL.GetMessageModel(messageModelTo, messageModelTo.ToUserID);

                    //notify the sender that the message sent successfully
                    foreach (AspNetUserConnectionModel aspNetUserConnectionModel in messageModelFrom.FromUserModel.AspNetUserConnectionModelList)
                    {
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).messageSentSuccessfully(messageModelFrom);
                    }

                    //notify the reciever that new message sent to him
                    foreach (AspNetUserConnectionModel aspNetUserConnectionModel in messageModelTo.ToUserModel.AspNetUserConnectionModelList)
                    {
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).recieveMessage(messageModelTo);
                        Clients.Client(aspNetUserConnectionModel.ConnectionID).updateNotReadCount(messageBAL.GetNotFromMeAndNotReadCountByUserID(messageModelTo.ToUserID));
                    }
                }

                //this will return to from user
                return(messageModelFrom);
            }
            return(null);
        }
예제 #7
0
        public JsonResult SendMessage(string toUserID, string messageText)
        {
            MessageModel messageModel = new MessageModel();

            messageModel.ToUserID    = toUserID;
            messageModel.MessageText = messageText;
            messageModel.FromUserID  = ContextInfo.UserID;

            using (MessageBAL messageBAL = new MessageBAL(ContextInfo))
            {
                messageBAL.Create(messageModel);

                messageBAL.GetMessageModel(messageModel, ContextInfo.UserID);
            }

            return(Json(new
            {
                baseModel = messageModel
            }, JsonRequestBehavior.AllowGet));
        }