Beispiel #1
0
        public IHttpActionResult reply([FromBody] _ReplyMessage replyMessage, int id)
        {
            int user_id = Users.GetUserId(User);

            Users user = db.users.Find(user_id);

            if (user == null)
            {
                return(NotFound());
            }

            UserMessages userMessage = db.user_messages.Where(um => um.user_id == user_id && um.message_id == id).FirstOrDefault();

            if (userMessage == null)
            {
                return(NotFound());
            }

            Messages message = db.messages.Find(userMessage.message_id);

            if (message == null)
            {
                return(NotFound());
            }

            List <_MessageDetail> messages = new List <_MessageDetail>();

            messages = JsonConvert.DeserializeObject <ICollection <_MessageDetail> >(message.messages).ToList();

            _MessageDetail reply = new _MessageDetail()
            {
                date     = DateTime.Now,
                fullname = user.name + " " + user.lastname,
                message  = replyMessage.message
            };

            messages.Add(reply);

            message.messages        = JsonConvert.SerializeObject(messages);
            message.last_message    = JsonConvert.SerializeObject(reply);
            message.last_message_on = DateTime.Now;
            db.SaveChanges();


            UserMessages userMessageRecipient = db.user_messages.Where(um => um.user_id != user_id && um.message_id == id).FirstOrDefault();

            userMessageRecipient.last_view = null;
            db.SaveChanges();

            Socket.Emit(userMessageRecipient.user_id, "message", new { id = id, message = reply, last_view = DBNull.Value, user = new { fullname = user.name + " " + user.lastname, photo = user?.getPhotosUrl() } });

            return(Ok(reply));
        }
Beispiel #2
0
        public IHttpActionResult create([FromBody] _Message _message)
        {
            #region User Validation

            int user_id = Users.GetUserId(User);

            // get User
            Users user = db.users.Find(user_id);
            if (user == null)
            {
                return(NotFound());
            }

            //Check user exist
            if (!db.users.Any(u => u.id == _message.user_id))
            {
                return(NotFound());
            }
            #endregion

            if (user_id == _message.user_id)
            {
                ExceptionThrow.Throw("Geçersiz mesaj istediği.", System.Net.HttpStatusCode.Forbidden);
            }


            List <_MessageDetail> msgList   = new List <_MessageDetail>();
            _MessageDetail        msgDetail = new _MessageDetail()
            {
                date     = DateTime.Now,
                fullname = user.name + " " + user.lastname,
                message  = _message.message
            };
            msgList.Add(msgDetail);

            //Create Message
            Messages message = new Messages()
            {
                last_message    = new JavaScriptSerializer().Serialize(msgDetail),
                messages        = new JavaScriptSerializer().Serialize(msgList),
                last_message_on = DateTime.Now
            };
            db.messages.Add(message);
            db.SaveChanges();

            //create User Messages
            UserMessages userMessage_Sender = new UserMessages()
            {
                is_owner   = true,
                user_id    = user_id,
                message_id = message.id,
                last_view  = DateTime.Now
            };
            UserMessages userMessage_Recipient = new UserMessages()
            {
                user_id    = _message.user_id,
                message_id = message.id
            };
            db.user_messages.Add(userMessage_Sender);
            db.user_messages.Add(userMessage_Recipient);
            db.SaveChanges();

            Socket.Emit(_message.user_id, "message", new { id = message.id, message = msgDetail, last_view = DBNull.Value, user = new { fullname = user.name + " " + user.lastname, photo = user?.getPhotosUrl() } });

            return(Ok(message));
        }