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);
                }
            }
        }
Beispiel #2
0
 public void SetMessageKey(Message msg)
 {
     msg.Key = "M" + GetKey();
 }