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)); }
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)); }