public HttpResponseMessage PostMessage(PD_MessageDTO item, int id) { //if (item.EndPoints[0] == 0.0 && item.EndPoints[1] == 0.0) return null; //older versions //else if (item.EndPoints.Length == 2) return null; var _p = _db.PD_Processes.Find(id); if (User.Identity.Name.Equals(_p.LockedBy)) { foreach (var i in _p.Messages) //this foreach shouldnt be necessary, by doing a simple update via javascript, but doesn't seem to be working { if (i.EndPoints != null)//for older versions { var source1 = Convert.ToDouble(i.EndPoints.Split('|')[0]); var source2 = Convert.ToDouble(i.EndPoints.Split('|')[1]); if (source1 == item.EndPoints[0] && source2 == item.EndPoints[1]) { i.EndPoints = (item.EndPoints[0]).ToString() + "|" + (item.EndPoints[1]).ToString() + "|" + (item.EndPoints[2]).ToString() + "|" + (item.EndPoints[3]).ToString(); i.To = item.To; _db.SaveChanges(); return null; } } } PD_Message m = new PD_Message() { From = item.From, To = item.To }; m.Id = IdHelper.getMessageId(_db, id); if (item.EndPoints.Length == 2){//si me da igual, algo hay q guardar simplemente m.EndPoints = (item.EndPoints[0]).ToString() + "|" + (item.EndPoints[1]).ToString() + "|0|0"; }else{ m.EndPoints = (item.EndPoints[0]).ToString() + "|" + (item.EndPoints[1]).ToString() + "|" + (item.EndPoints[2]).ToString() + "|" + (item.EndPoints[3]).ToString(); } //m.EndPoints = item.EndPoints; _p.Messages.Add(m); _db.SaveChanges(); var response = Request.CreateResponse<PD_MessageDTO>(HttpStatusCode.Created, new PD_MessageDTO() { Id = m.Id, From = m.From, To = m.To, TypeName = "newMessage", EndPoints = item.EndPoints }); string uri = Url.Content("Designer" + id + "/Messages/" + m.Id); response.Headers.Location = new Uri(uri); return response; } else { return null; } }
public void PutMessage(PD_MessageDTO item, int id, int mid) { var _p = _db.PD_Processes.Find(id); if (User.Identity.Name.Equals(_p.LockedBy)) { PD_Message m = _db.PD_Messages.Find(id, mid); if (m != null) { m.From = item.From; m.To = item.To; _db.SaveChanges(); } else { throw new HttpResponseException(HttpStatusCode.NotFound); } } }
public IEnumerable<PD_MessageDTO> GetAllMessages(int id) { var _p = _db.PD_Processes.Find(id); List<PD_MessageDTO> tmp = new List<PD_MessageDTO>(); foreach (PD_Message m in _p.Messages) { PD_MessageDTO dto = new PD_MessageDTO { Id = m.Id, From = m.From, To = m.To }; if (m.EndPoints != null) { dto.EndPoints = new double[4]; dto.EndPoints[0] = Convert.ToDouble(m.EndPoints.Split('|')[0]); dto.EndPoints[1] = Convert.ToDouble(m.EndPoints.Split('|')[1]); dto.EndPoints[2] = Convert.ToDouble(m.EndPoints.Split('|')[2]); dto.EndPoints[3] = Convert.ToDouble(m.EndPoints.Split('|')[3]); } if (m.PD_MessageType != null) { dto.TypeName = m.PD_MessageType.Name; } else { dto.TypeName = "newMessage"; } tmp.Add(dto); } return tmp.ToArray(); }