public IResponse Execute(string payload) { JObject json = JsonConvert.DeserializeObject<JObject>(payload); string name = json[NameKey].ToString(); RoadplusData data = new RoadplusData(); Zone newZone = new Zone() { Name = name, StartVertexId = 0, RadarVertexId = 0 }; int newZoneId = Convert.ToInt32( data.InsertWithIdentity<Zone>(newZone)); Vertex startVertex = new Vertex() { X = 0, Y = 0, ZoneId = newZoneId }; int startVertexId = Convert.ToInt32( data.InsertWithIdentity<Vertex>(startVertex)); newZone.ZoneId = newZoneId; newZone.StartVertexId = startVertexId; data.Update<Zone>(newZone); CreateResponse response = new CreateResponse() { Command = Name, CreatedObject = newZone }; return response; }
public IResponse Execute(string payload) { JObject o = JsonConvert.DeserializeObject<JObject>(payload); int zoneId, startVertexX, startVertexY, endVertexX, endVertexY; if (!Int32.TryParse(o[ZoneIdKey].ToString(), out zoneId) || !Int32.TryParse(o[startVertexXKey].ToString(), out startVertexX) || !Int32.TryParse(o[startVertexYKey].ToString(), out startVertexY) || !Int32.TryParse(o[endVertexXKey].ToString(), out endVertexX) || !Int32.TryParse(o[endVertexYKey].ToString(), out endVertexY)) { return new ResponseFailure( Name, "Int32 Parse error"); } RoadplusData data = new RoadplusData(); if (!data.Zones.Any(z => z.ZoneId == zoneId)) { return new ResponseFailure( Name, "Zone does not exist"); } Vertex startVertex = new Vertex() { ZoneId = zoneId, X = startVertexX, Y = startVertexY }; Vertex endVertex = new Vertex() { ZoneId = zoneId, X = endVertexX, Y = endVertexY }; int startVertexId = Convert.ToInt32( data.InsertWithIdentity<Vertex>(startVertex)); int endVertexId = Convert.ToInt32( data.InsertWithIdentity<Vertex>(endVertex)); startVertex.VertexId = startVertexId; endVertex.VertexId = endVertexId; Edge newEdge = new Edge() { ZoneId = zoneId, StartVertexId = startVertexId, EndVertexId = endVertexId, Weight = 0.0, MaxSpeed = 0 }; int edgeId = Convert.ToInt32( data.InsertWithIdentity<Edge>(newEdge)); newEdge.EdgeId = edgeId; return new EdgeSetResponse() { ZoneId = zoneId, CreatedEdge = newEdge, StartVertex = startVertex, EndVertex = endVertex }; }