//public HttpResponseMessage PutMessage(int id, Message message) //{ // if (ModelState.IsValid && id == message.MessageID) // { // db.Entry(message).State = EntityState.Modified; // try // { // db.SaveChanges(); // } // catch (DbUpdateConcurrencyException) // { // return Request.CreateResponse(HttpStatusCode.NotFound); // } //// PUT api/Messages/5 // return Request.CreateResponse(HttpStatusCode.OK); // } // else // { // return Request.CreateResponse(HttpStatusCode.BadRequest); // } //} // POST api/Messages/PostMessage public HttpResponseMessage PostMessage(Message message) { var chatId = message.ChatID; var chat = this.db.Chats.Find(chatId); var userId = message.UserID; if (chatId <= 0 || userId <= 0) { return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } if (this.ModelState.IsValid) { chat.Messages.Add(message); this.db.Messages.Add(message); this.db.SaveChanges(); HttpResponseMessage response = this.Request.CreateResponse(HttpStatusCode.Created, message); response.Headers.Location = new Uri(this.Url.Link("DefaultApi", new { id = message.MessageID })); return response; } else { return this.Request.CreateResponse(HttpStatusCode.BadRequest); } }
// POST api/messages public void Post([FromBody]MessagePostModel message) { var messageEntity = new Message { Content = message.Content, FromUser = new User { SessionKey = message.FromUser }, ToUser = new User { Id = int.Parse(message.ToUser) }, }; this.messageRepository.Add(messageEntity); var notification = new NotificationModel { ToUser = messageEntity.FromUser.SessionKey, FromUser = messageEntity.ToUser.Nickname }; PubNubNotifier.PublishMessage(JsonConvert.SerializeObject(notification)); }
public ActionResult SubmitMessage(RoomSubmitMessageViewModel model) { if(!ModelState.IsValid) { return Json(new { Success = false, Message = "Not valid" }); } var room = DocumentSession.Query<Room>().SingleOrDefault(m => m.Id == model.RoomId); if(room == null) { return Json(new { Success = false, Message = "Not valid room id" }); } var roomUser = DocumentSession.Query<RoomUser>().SingleOrDefault(r => r.UserId == CurrentUser.Id && r.RoomId == room.Id); if(roomUser == null) { roomUser = new RoomUser() { Id = room.Id + "-" + CurrentUser.Id, LastActivity = DateTime.Now, RoomId = room.Id, UserId = CurrentUser.Id, UserName = CurrentUser.Name }; DocumentSession.Store(roomUser); } else { roomUser.LastActivity = DateTime.Now; } Message message = new Message() { CreateDateTime = DateTime.Now, CreateUserId = CurrentUser.Id, RoomId = room.Id, Text = model.Text, CreateUserName = CurrentUser.Name }; DocumentSession.Store(message); DocumentSession.SaveChanges(); return Json(new { Success = true }); }