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