private void OnPacket(RapidsConnection sendPort, JObject jsonPacket, PacketProblems warnings) { foreach (IPacketListener l in _listeners) { l.ProcessPacket(sendPort, jsonPacket, warnings); } }
private void OnError(RapidsConnection sendPort, PacketProblems errors) { foreach (IPacketListener l in _listeners) { l.ProcessError(sendPort, errors); } }
public void HandleMessage(RapidsConnection sendPort, string message) { PacketProblems problems = new PacketProblems(message); JObject jsonPacket = JsonPacket(message, problems); Validate(problems, jsonPacket); TriggerService(sendPort, problems, jsonPacket); }
private void TriggerService(RapidsConnection sendPort, PacketProblems problems, JObject jsonPacket) { if (problems.HasErrors()) { OnError(sendPort, problems); return; } IncrementRepublishCount(jsonPacket); OnPacket(sendPort, jsonPacket, problems); }
public void Validate(JObject jsonPacket, PacketProblems problems) { foreach (string key in _requiredKeys) { if (jsonPacket[key] == null) { problems.Error("Missing required key '" + key + "'"); } } }
private void Validate(PacketProblems problems, JObject jsonPacket) { foreach (IValidation v in _validations) { if (problems.AreSevere()) { break; } v.Validate(jsonPacket, problems); } }
public void Validate(JObject jsonPacket, PacketProblems problems) { if (jsonPacket[_requiredKey] == null) { problems.Error($"Missing required key \'{_requiredKey}\'"); return; } if ((string)jsonPacket[_requiredKey] != _requiredValue) { problems.Error($"Required key \'{_requiredKey}\' should be \'{_requiredValue}\', but has unexpected value of \'{jsonPacket[_requiredKey]}\'"); } }
public void Validate(JObject jsonPacket, PacketProblems problems) { if (IsMissingValue(jsonPacket[RepublishCountKey])) { return; } int republishCount = (int)jsonPacket[RepublishCountKey]; if (republishCount >= _limit) { problems.SevereError($"Republish count of {republishCount} exceeds limit of {_limit}"); } }
public void Validate(JObject jsonPacket, PacketProblems problems) { foreach (string key in _forbiddenKeys) { if (IsMissingValue(jsonPacket[key])) { problems.Information($"Forbidden key \'{key}\' does not exist"); } else { problems.Error($"Forbidden key \'{key}\' actually exists"); } } }
public void Validate(JObject jsonPacket, PacketProblems problems) { foreach (string key in _requiredKeys) { if (IsMissingValue(jsonPacket[key])) { problems.Error($"Missing required key \'{key}\'"); } else { problems.Information($"Required key \'{key}\' actually exists"); } } }
public void Validate(JObject jsonPacket, PacketProblems problems) { if (jsonPacket[_requiredKey] == null) { problems.Error("Missing required key '" + _requiredKey + "'"); return; } if (((string)jsonPacket[_requiredKey]) != _requiredValue) { problems.Error( "Required key '" + _requiredKey + "' should be '" + this._requiredValue + "', but has unexpected value of '" + jsonPacket[_requiredKey] + "'"); } }
private JObject JsonPacket(string message, PacketProblems problems) { try { return(JObject.Parse(message)); } catch (JsonException) { problems.SevereError("Invalid JSON format per NewtonSoft JSON library"); } catch (Exception e) { problems.SevereError("Unknown failure. Exception message is: " + e.Message); } return(null); }
public void Validate(JObject jsonPacket, PacketProblems problems) { foreach (string key in _forbiddenKeys) { JToken token = jsonPacket[key]; // Tests as suggested by NewtonSoft recommendations if ((token == null) || (token.Type == JTokenType.Array && !token.HasValues) || (token.Type == JTokenType.Object && !token.HasValues) || (token.Type == JTokenType.String && token.ToString() == String.Empty) || (token.Type == JTokenType.Null)) { problems.Information("Forbidden key '" + key + "' does not exist"); } else { problems.Error("Forbidden key '" + key + "' actually exists"); } } }
public void HandleMessage(RapidsConnection sendPort, string message) { PacketProblems problems = new PacketProblems(message); JObject jsonPacket = JsonPacket(message, problems); foreach (IValidation v in _validations) { if (problems.AreSevere()) { break; } v.Validate(jsonPacket, problems); } if (problems.HasErrors()) { OnError(sendPort, problems); } else { IncrementReadCount(jsonPacket); Packet(sendPort, jsonPacket, problems); } }