public HttpResponseMessage Post(Message message) { var msg = _repo.Find<Message>(message.Key); if (msg == null) { try { ApplicationUser currUser = _repo.Query<ApplicationUser>().Where(a => a.UserName == User.Identity.Name).Single(); Conversation currConvo = _repo.Find<Conversation>(message.Conversation.Key); _service.SetMessageKey(message); message.Contributor = currUser; message.TimeSubmitted = DateTime.Now; message.Conversation = currConvo; if(currConvo.MessageList == null) { currConvo.MessageList = new List<Message>(); } ModelState.Clear(); if (ModelState.IsValid) { _repo.Add<Message>(message); currConvo.MessageList.Add(message); _repo.SaveChanges(); return Request.CreateResponse(HttpStatusCode.Created, message); } else { return Request.CreateResponse(HttpStatusCode.BadRequest, ModelState); } } catch { return Request.CreateResponse(HttpStatusCode.BadRequest); } } else { try { //Message Text msg.Text = message.Text ?? msg.Text; _repo.SaveChanges(); return Request.CreateResponse(HttpStatusCode.OK, msg); } catch { return Request.CreateResponse(HttpStatusCode.BadRequest); } } }
public void SetMessageKey(Message msg) { msg.Key = "M" + GetKey(); }