/*************** END DEBUG MODE METHOD *************/ static public bool AddDeviceBlob(JObject blob) { string blob_string = blob.ToString(); Device dev = Interfaces.CreateDevices(blob_string, new TimeFrame()); // to convert the JSON blob to an actual Device object. ulong devID = (ulong)blob ["deviceID"]; ulong roomID = (ulong)blob ["roomID"]; ulong houseID = (ulong)blob ["houseID"]; FullID fullID = new FullID(); fullID.DeviceID = devID; fullID.RoomID = roomID; fullID.HouseID = houseID; deviceBlobs.Add(fullID, dev); if (deviceBlobs.Contains(dev)) { // Arjun -- add push notification code here return(true); } return(false); }
static public JToken GetDeviceBlob(FullID fullID) { Device dev = deviceBlobs [fullID]; deviceBlobs.Remove(fullID); return(dev.ToString()); // implicit conversion }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var id = new FullID(); id.DeviceID = (UInt64)reader.Value; return(id); }
private void processInsertEdgeCommand(Command command) { var parameters = command.GetParameters(); var commandClientID = command.__getClientID(); var verticesDictionary = graph_.__getVerticesDictionary(); var fromVertex = verticesDictionary.Find(FullID.FromString(parameters[0])); var endVertex = verticesDictionary.Find(FullID.FromString(parameters[1])); if (fromVertex == null || endVertex == null) { return; } if (fromVertex.IsConnectedTo(endVertex)) { return; } var edgeFullID = new FullID(commandClientID, int.Parse(parameters[2])); Edge edge = fromVertex.__connectTo(endVertex, edgeFullID); if (graph_.IsLoading() && commandClientID == graph_.__getClientID()) { graph_.__setLastCreatedEdgeID(edgeFullID.GetIDinCreator()); } graph_.__raiseEdgeAddedEvent(edge); }
internal Vertex __insertVertex(Point3D position, FullID fullID) { var vertex = new Vertex(this, position, fullID, verticesDictionary_.GetAllItems().Count); verticesDictionary_.Add(vertex); return(vertex); }
internal Edge(Vertex startVertex, Vertex endVertex, FullID fullID, Graph graph) { startVertex_ = startVertex; endVertex_ = endVertex; edgeLines_ = new List <EdgeLine>(); edgeLines_.Add(new EdgeLine(this, null, null)); fullID_ = fullID; graph_ = graph; properties_ = new Dictionary <string, Dictionary <string, string> >(); }
internal Edge __connectTo(Vertex endVertex, FullID edgeFullID) { var edge = new Edge(this, endVertex, edgeFullID, graph_); graph_.__getEdgesDictionary().Add(edge); edges_.Add(edge); endVertex.edges_.Add(edge); return(edge); }
internal Vertex(Graph graph, Point3D position, FullID fullID, int index) { graph_ = graph; properties_ = new Dictionary <string, Dictionary <string, string> >(); edges_ = new List <Edge>(); position_ = position; rotation_ = new Point4D(0, 0, 1, 1); scale_ = 1; fullID_ = fullID; index_ = index; }
private void processRemoveVertexCommand(Command command) { var parameters = command.GetParameters(); var verticesDictionary = graph_.__getVerticesDictionary(); var vertex = verticesDictionary.Find(FullID.FromString(parameters[0])); graph_.__removeVertex(vertex); graph_.__raiseVertexRemovedEvent(vertex); }
private void processRemoveEdgeCommand(Command command) { var parameters = command.GetParameters(); var edgesDictionary = graph_.__getEdgesDictionary(); var edge = edgesDictionary.Find(FullID.FromString(parameters[0])); graph_.__removeEdge(edge); graph_.__raiseEdgeRemovedEvent(edge); }
public Vertex AddVertex(Point3D position) { int IDinCreator = ++lastCreatedVertexID_; var fullID = new FullID(clientID_, IDinCreator); var vertex = __insertVertex(position, fullID); commandSender_.__sendInsertVertexCommand(vertex); return(vertex); }
public Thermostat GetThermostat() { var id = new FullID(0, 0, 2); const string HouseString = "{\"house_url\":\"http://127.0.0.1:8081\"}"; const string DeviceString = "{\"ID\": 2, \"Class\": \"Thermostat\"}"; var dev_out = ServerSideAPI.CreateDevice(id, HouseString, DeviceString, _frame); Assert.IsNotNull(dev_out); Assert.AreEqual(dev_out.Input.GetType(), typeof(HouseInput)); Assert.AreEqual(dev_out.Output.GetType(), typeof(HouseOutput)); return(dev_out as Thermostat); }
private void processRemoveBendCommand(Command command) { var parameters = command.GetParameters(); var edgesDictionary = graph_.__getEdgesDictionary(); var edge = edgesDictionary.Find(FullID.FromString(parameters[0])); if (edge == null) { return; } var bend = edge.__removeBend(int.Parse(parameters[1])); graph_.__raiseBendRemovedEvent(bend); }
private void processSetEdgePropertyCommand(Command command) { var parameters = command.GetParameters(); var edgesDictionary = graph_.__getEdgesDictionary(); var edge = edgesDictionary.Find(FullID.FromString(parameters[0])); if (edge == null) { return; } edge.__setProperty(parameters[1], parameters[2], parameters[3]); graph_.__raiseEdgePropertyChangedEvent(edge, parameters[1], parameters[2]); }
private void processSetVertexPropertyCommand(Command command) { var parameters = command.GetParameters(); var verticesDictionary = graph_.__getVerticesDictionary(); var vertex = verticesDictionary.Find(FullID.FromString(parameters[0])); if (vertex == null) { return; } vertex.__setProperty(parameters[1], parameters[2], parameters[3]); graph_.__raiseVertexPropertyChangedEvent(vertex, parameters[1], parameters[2]); }
public void SetLightTest() { var id = new FullID(0, 0, 0); const string HouseString = "{\"house_url\":\"http://127.0.0.1:8081\"}"; const string DeviceString = "{\"ID\": 0, \"Class\": \"LightSwitch\"}"; var dev_out = ServerSideAPI.CreateDevice(id, HouseString, DeviceString, _frame); Assert.IsNotNull(dev_out); var ls = (LightSwitch)dev_out; Assert.IsNotNull(ls); ls.Enabled = true; Assert.IsTrue(ls.Enabled); Assert.IsTrue(ls.UpdateOk); Assert.AreEqual(ls.Value.Brightness, 1.0); }
private void processChangeVertexScaleCommand(Command command) { var parameters = command.GetParameters(); var verticesDictionary = graph_.__getVerticesDictionary(); var vertex = verticesDictionary.Find(FullID.FromString(parameters[0])); if (vertex == null) { return; } var scale = double.Parse(parameters[1]); vertex.__setScale(scale); graph_.__raiseVertexScaleChangedEvent(vertex); }
private void processInsertVertexCommand(Command command) { var parameters = command.GetParameters(); var commandClientID = command.__getClientID(); var position = new Point3D(double.Parse(parameters[1]), double.Parse(parameters[2]), double.Parse(parameters[3])); var vertexFullID = new FullID(commandClientID, int.Parse(parameters[0])); Vertex insertedVertex = graph_.__insertVertex(position, vertexFullID); if (graph_.IsLoading() && commandClientID == graph_.__getClientID()) { graph_.__setLastCreatedVertexID(vertexFullID.GetIDinCreator()); } graph_.__raiseVertexAddedEvent(insertedVertex); }
private void processMoveVertexCommand(Command command) { var parameters = command.GetParameters(); var verticesDictionary = graph_.__getVerticesDictionary(); var vertex = verticesDictionary.Find(FullID.FromString(parameters[0])); if (vertex == null) { return; } var position = new Point3D(double.Parse(parameters[1]), double.Parse(parameters[2]), double.Parse(parameters[3])); vertex.__move(position); graph_.__raiseVertexMovedEvent(vertex); }
private void processBreakEdgeLineCommand(Command command) { var parameters = command.GetParameters(); var edgesDictionary = graph_.__getEdgesDictionary(); var edge = edgesDictionary.Find(FullID.FromString(parameters[0])); if (edge == null) { return; } var position = new Point3D(double.Parse(parameters[2]), double.Parse(parameters[3]), double.Parse(parameters[4])); var bend = edge.__breakEdgeLine(position, int.Parse(parameters[1])); graph_.__raiseBendAddedEvent(bend); }
public bool GetState(JObject model) { #if DEBUG return(true); #else // parse the JSON UInt64 houseID = (UInt64)model["houseID"]; UInt64 roomID = (UInt64)model["roomID"]; UInt64 deviceID = (UInt64)model["deviceID"]; string deviceClass = (string)model["deviceClass"]; string houseURL = (string)model["houseURL"]; // done parsing JSON TimeFrame frame = new TimeFrame(); var id = new FullID(); id.HouseID = houseID; id.RoomID = roomID; id.DeviceID = deviceID; JObject jHouseString = new JObject(); jHouseString["houseURL"] = houseURL; string HouseString = jHouseString.ToString(); JObject jDeviceString = new JObject(); jDeviceString["ID"] = Convert.ToString(deviceID); jDeviceString["Class"] = deviceClass; string DeviceString = jDeviceString.ToString(); var dev_out = ServerSideAPI.CreateDevice(id, HouseString, DeviceString, frame); if (dev_out != null) //Good to go { //state changed means some value was changed, e.g. the command was not idempotent var ok = dev_out.update(); var json = JsonConvert.SerializeObject(dev_out); //this JSON blob should be sent to whomever wants updates AppCache.AddDeviceBlob(JObject.Parse(json)); } return(true); #endif }
private void processChangeVertexRotationCommand(Command command) { var parameters = command.GetParameters(); var verticesDictionary = graph_.__getVerticesDictionary(); var vertex = verticesDictionary.Find(FullID.FromString(parameters[0])); if (vertex == null) { return; } var rotation = new Point4D( double.Parse(parameters[1]), double.Parse(parameters[2]), double.Parse(parameters[3]), double.Parse(parameters[4])); vertex.__setRotation(rotation); graph_.__raiseVertexRotationChangedEvent(vertex); }
private void processMoveBendCommand(Command command) { var parameters = command.GetParameters(); var edgesDictionary = graph_.__getEdgesDictionary(); var edge = edgesDictionary.Find(FullID.FromString(parameters[0])); if (edge == null) { return; } var position = new Point3D(double.Parse(parameters[2]), double.Parse(parameters[3]), double.Parse(parameters[4])); int index = int.Parse(parameters[1]); var bend = edge.GetEdgeLines()[index].GetEndBend(); bend.__move(position); graph_.__raiseBendMovedEvent(bend); }
public void TestUpdateDevice() { var id = new FullID(0, 0, 1); var th1 = new Thermostat(null, null, null); th1.Enabled = true; th1.SetPoint = 100; th1.ID = id; var th2 = new Thermostat(null, null, null); th2.Enabled = false; th2.SetPoint = 0; th2.ID = id; Assert.AreNotEqual(th1.Enabled, th2.Enabled); Assert.AreNotEqual(th1.SetPoint.C, th2.SetPoint.C); Assert.IsTrue(Interfaces.UpdateDevice(th2, th1)); Assert.AreEqual(th1.Enabled, th2.Enabled); Assert.AreEqual(th1.SetPoint, th2.SetPoint); Assert.IsFalse(Interfaces.UpdateDevice(th2, th1)); }
// add any other JArrays containing blobs here //////////////////////////////////////////////////////////////////////////////////////// // // deviceBlobs methods /*************** DEBUG MODE METHOD *************/ static public bool AddDeviceBlob_DEBUG(JObject blob) { Uri storageURL = new Uri(DeviceRepository.storageURL); Interfaces check = new Interfaces(storageURL); string blob_string = blob.ToString(); Device dev = check.CreateDevice(blob_string, new TimeFrame()); ulong devID = (ulong)blob["deviceID"]; ulong roomID = (ulong)blob["roomID"]; ulong houseID = (ulong)blob["houseID"]; FullID fullID = new FullID(); fullID.DeviceID = devID; fullID.RoomID = roomID; fullID.HouseID = houseID; deviceBlobs.Add(fullID, dev); //if (deviceBlobs.Contains(fullID, dev)) //{ // return true; //} return(true); }
public static string ManageEvent(EventMember Events) { string msg = string.Empty; string MemberID = ""; string MemberDetailID = ""; SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AagakhanConnectionString"].ConnectionString); conn.Open(); try { if (Events.IsEdit == 0) { if (Events.ProgramID == 2) { string Members = Events.Members; string[] AllMember = Members.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string FullID in AllMember) { SqlCommand cmd = new SqlCommand("EventParticipateDetailsInsert", conn); cmd.CommandType = CommandType.StoredProcedure; string[] IDOnly = FullID.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < 1; i++) { if (IDOnly[1] == "MD") { MemberDetailID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = DBNull.Value; cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberDetailID.ToString()); } else { MemberID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberID.ToString()); cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = DBNull.Value; } cmd.Parameters.Add("@VillageID", SqlDbType.BigInt).Value = Convert.ToInt64(IDOnly[2].ToString()); cmd.Parameters.Add("@EventDetailID", SqlDbType.BigInt).Value = Events.EventDetailID; cmd.Parameters.Add("@LoginType", SqlDbType.VarChar).Value = HttpContext.Current.Session["LoginType"]; cmd.Parameters.Add("@InsertedBy", SqlDbType.BigInt).Value = HttpContext.Current.Session["UserID"]; cmd.Parameters.Add("@YearID", SqlDbType.BigInt).Value = HttpContext.Current.Session["YearID"]; cmd.Parameters.Add("@MachineName", SqlDbType.NVarChar).Value = Global.MachineName; cmd.ExecuteNonQuery(); cmd.Dispose(); MemberDetailID = ""; MemberID = ""; } } conn.Close(); } else if (Events.ProgramID == 1) { string Members = Events.Members; string[] AllMember = Members.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string FullID in AllMember) { SqlCommand cmd = new SqlCommand("ActivityParticipateDetailsInsert", conn); cmd.CommandType = CommandType.StoredProcedure; string[] IDOnly = FullID.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < 1; i++) { if (IDOnly[1] == "MD") { MemberDetailID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = DBNull.Value; cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberDetailID.ToString()); } else { MemberID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberID.ToString()); cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = DBNull.Value; } cmd.Parameters.Add("@VillageID", SqlDbType.BigInt).Value = Convert.ToInt64(IDOnly[2].ToString()); cmd.Parameters.Add("@EventDetailID", SqlDbType.BigInt).Value = Events.EventDetailID; cmd.Parameters.Add("@LoginType", SqlDbType.VarChar).Value = HttpContext.Current.Session["LoginType"]; cmd.Parameters.Add("@InsertedBy", SqlDbType.BigInt).Value = HttpContext.Current.Session["UserID"]; cmd.Parameters.Add("@YearID", SqlDbType.BigInt).Value = HttpContext.Current.Session["YearID"]; cmd.Parameters.Add("@MachineName", SqlDbType.NVarChar).Value = Global.MachineName; cmd.ExecuteNonQuery(); cmd.Dispose(); MemberDetailID = ""; MemberID = ""; } } conn.Close(); } else if (Events.ProgramID == 3) { string Members = Events.Members; string[] AllMember = Members.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string FullID in AllMember) { SqlCommand cmd = new SqlCommand("TrainingParticipateDetailsInsert", conn); cmd.CommandType = CommandType.StoredProcedure; string[] IDOnly = FullID.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < 1; i++) { if (IDOnly[1] == "MD") { MemberDetailID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = DBNull.Value; cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberDetailID.ToString()); } else { MemberID += IDOnly[0]; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MemberID", SqlDbType.BigInt).Value = Convert.ToInt64(MemberID.ToString()); cmd.Parameters.Add("@MemberDetailID", SqlDbType.BigInt).Value = DBNull.Value; } cmd.Parameters.Add("@VillageID", SqlDbType.BigInt).Value = Convert.ToInt64(IDOnly[2].ToString()); cmd.Parameters.Add("@EventDetailID", SqlDbType.BigInt).Value = Events.EventDetailID; cmd.Parameters.Add("@LoginType", SqlDbType.VarChar).Value = HttpContext.Current.Session["LoginType"]; cmd.Parameters.Add("@InsertedBy", SqlDbType.BigInt).Value = HttpContext.Current.Session["UserID"]; cmd.Parameters.Add("@YearID", SqlDbType.BigInt).Value = HttpContext.Current.Session["YearID"]; cmd.ExecuteNonQuery(); cmd.Dispose(); MemberDetailID = ""; MemberID = ""; } } conn.Close(); } msg = "પ્રોગ્રામની માહિતી દાખલ થઈ ગઈ છે."; } else { } } catch (Exception ex) { Global.ErrorInsert(ex.Message, formname, "UserManage"); msg = "Error" + ex.Message; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return(msg); }
public override string ToString() { return(FullID.ToString()); }
public bool updateSimulation(UInt64 houseID, UInt64 roomID, UInt64 deviceID, JObject sendData) { // UInt64 test = fullId.HouseID; #if DEBUG #else HouseRepository houseRepo = new HouseRepository(); JObject houseObj = new JObject(); JObject deviceObj = new JObject(); String HouseString, DeviceString, commands; var id = new FullID(); id.HouseID = houseID; id.DeviceID = deviceID; id.RoomID = roomID; WebRequest request = WebRequest.Create(storageURL + "UD/" + houseID + "/" + roomID + "/" + deviceID); request.ContentType = "application/json"; request.Method = "POST"; using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(sendData.ToString()); streamWriter.Flush(); streamWriter.Close(); } using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { if (response.StatusCode != HttpStatusCode.OK) { throw new Exception(String.Format( "Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription)); } } houseObj = houseRepo.GetHouse(houseID); // queries PS for information deviceObj = GetDevice(houseID.ToString(), roomID.ToString(), deviceID.ToString()); JToken blobVal; //String blob = (string)deviceArr["blob"]; //blobVal = JToken.Parse(blob); String house_url = (string)(houseObj["house_url"]); UInt64 ID = (UInt64)(deviceObj["ID"]); String clas = (string)(deviceObj["Class"]); JObject send = new JObject(); JObject send1 = new JObject(); send["house_url"] = house_url; send1["ID"] = ID; send1["Class"] = clas; TimeFrame frame = new TimeFrame(); HouseString = JsonConvert.SerializeObject(send); DeviceString = JsonConvert.SerializeObject(send1); commands = JsonConvert.SerializeObject(sendData); var dev_out = ServerSideAPI.CreateDevice(id, HouseString, DeviceString, frame); if (dev_out != null) //Good to go { //state changed means some value was changed, e.g. the command was not idempotent var state_changed = Interfaces.UpdateDevice(dev_out, commands); } #endif return(true); }
/*************** END DEBUG MODE METHOD *************/ static public bool AddDeviceBlob(JObject blob) { Uri storageURL = new Uri(DeviceRepository.storageURL); Interfaces check = new Interfaces(storageURL); string blob_string = blob.ToString(); Device dev = check.CreateDevice(blob_string, new TimeFrame()); ulong devID = (ulong)blob["deviceID"]; ulong roomID = (ulong)blob["roomID"]; ulong houseID = (ulong)blob["houseID"]; FullID fullID = new FullID(); fullID.DeviceID = devID; fullID.RoomID = roomID; fullID.HouseID = houseID; bool notify = false; deviceBlobs.Add(fullID, dev); //if (deviceBlobs.Contains(fullID, dev)) //{ // notify = true; //} if (!notify) { return(true); } WebRequest request = WebRequest.Create(DeviceRepository.decisionURL + "BH/" + houseID); request.Method = "GET"; string userid = ""; try { using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { var stream = response.GetResponseStream(); var reader = new StreamReader(stream); string str = reader.ReadToEnd(); JObject jobject = JObject.Parse(str); userid = (string)jobject["userID"]; } } catch (WebException we) { return(true); } request = WebRequest.Create(DeviceRepository.decisionURL + "BU/" + userid); request.Method = "GET"; string endpoint = ""; try { using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { var stream = response.GetResponseStream(); var reader = new StreamReader(stream); string str = reader.ReadToEnd(); JObject jobject = JObject.Parse(str); endpoint = (string)jobject["endPointArn"]; // of the array is one line of the file. //string[] lines = System.IO.File.ReadAllLines(@"C:\keys.txt"); string accK = ""; string secK = ""; NotificationManager notificationManager = new NotificationManager(accK, secK, Amazon.RegionEndpoint.USEast1); notificationManager.init(); notificationManager.PublishNotification(endpoint, "Device Updated"); } } catch (WebException we) { return(true); } return(true); }
public JToken GetDevice(FullID fullID) { return(AppCache.GetDeviceBlob(fullID)); }