public void SetPower(int power, String username) { Console.WriteLine("Setpower in SP CTRL"); Packet p = new PushPacket<Configuaration>(PushPacket<Configuaration>.DataType.Configuration, new List<Configuaration> { new Configuaration { Power = power, Username = username } }, Settings.GetInstance().authToken); Console.WriteLine("Sending \n {0}", p); TCPController.Send(p); }
private static Packet HandlePushPacket(JObject json) { Packet p = null; JToken datatypeToken; if (!json.TryGetValue("Datatype", StringComparison.OrdinalIgnoreCase, out datatypeToken)) return null; var type = (PushPacket<Object>.DataType)Enum.Parse(typeof (PushPacket<Object>.DataType), (string) datatypeToken); switch (type) { case PushPacket<Object>.DataType.Configuration: p = new PushPacket<Configuaration>(json); break; } return p; }
private void SendToServer(object sender, EventArgs args) { //var jsonObject = new JObject( // new JProperty("CMD", "push"), // new JProperty("count", 1), // new JProperty("measurements", // new JArray( // JObject.FromObject(LatestMeasurement) // ) // ) //); var jsonObject = new PushPacket<Measurement>(PushPacket<Measurement>.DataType.Measurements, new List<Measurement>() { LatestMeasurement }, Settings.GetInstance().authToken ); //Johan's code line // ReSharper disable once SpecifyACultureInStringConversionExplicitly //json = json.Length.ToString().PadRight(4, ' ') + json; TCPController.Send(jsonObject.ToString()); }
private void HandlePushPacket(JObject json) { //var size = json["count"]; var measurements = json["DataSource"].Children(); var datatype = (string)json["Datatype"]; var authtoken = (string) json["AUTHTOKEN"]; if (!Authentication.Authenticate(authtoken)) { Send(new ResponsePacket(Statuscode.Status.Unauthorized)); return; } int id = currentUser.Id ?? -1; if (currentSession == -1) { currentSession = _database.getNewTrainingSessionId(id); var notifyPacket = new NotifyPacket(NotifyPacket.Subject.NewTrainingId, currentSession.ToString(), currentUser.NonNullId.ToString(), ""); Send(notifyPacket); var specs = Notifier.Instance.GetListeners((Client) currentUser).ToList(); specs.ForEach(x => Authentication.GetStream(x).Send(notifyPacket)); } if (datatype == "Measurements") { List<Measurement> measurementsL = new List<Measurement>(); foreach (var m in measurements.Select( jtoken => jtoken.ToObject<Measurement>()) ) { measurementsL.Add(m); Console.WriteLine(Resources.ClientHandler_HandlePushPacked_Recieved, measurements.FirstOrDefault()); } _database.SaveMeasurements(measurementsL, currentSession, id); var senderU = Authentication.GetUserByAuthToken(authtoken); // Check that sender is a client. if its not, return. if (!(senderU is Client)) return; var senderC = senderU as Client; //Should we notify anyone for this sender? If not, return. if (!Notifier.Instance.ShouldNotify(senderC)) return; // Get all handlers based on all listeners their username. var handlers = Notifier.Instance.GetListeners(senderC) .Select(listener => Authentication.GetStream(listener.Username)); var mList = measurements.Select(m => JsonConvert.DeserializeObject<Measurement>(m.ToString())).ToList(); // Building new json foreach (var handler in handlers) { Console.WriteLine("Notified " + handler.currentUser.Fullname); var returnJson = new DataFromClientPacket<Measurement>(mList, "measurements", currentUser.NonNullId); //new PullResponsePacket<Measurement>(mList, "measurements"); handler.Send(returnJson); } //Console.WriteLine("Notified the listeners"); } else if (datatype.Equals("Configuration", StringComparison.CurrentCultureIgnoreCase)) { var p = new PushPacket<Configuaration>(json); var config = p.DataSource.FirstOrDefault(); if (config == null) return; Console.WriteLine("Sending config-push-packet"); var stream = Authentication.GetStream(config.Username); stream.Send(p); } }