Пример #1
0
 private void OnPacket(RapidsConnection sendPort, JObject jsonPacket, PacketProblems warnings)
 {
     foreach (IPacketListener l in _listeners)
     {
         l.ProcessPacket(sendPort, jsonPacket, warnings);
     }
 }
Пример #2
0
 private void OnError(RapidsConnection sendPort, PacketProblems errors)
 {
     foreach (IPacketListener l in _listeners)
     {
         l.ProcessError(sendPort, errors);
     }
 }
Пример #3
0
        public void HandleMessage(RapidsConnection sendPort, string message)
        {
            PacketProblems problems   = new PacketProblems(message);
            JObject        jsonPacket = JsonPacket(message, problems);

            Validate(problems, jsonPacket);
            TriggerService(sendPort, problems, jsonPacket);
        }
Пример #4
0
 private void TriggerService(RapidsConnection sendPort, PacketProblems problems, JObject jsonPacket)
 {
     if (problems.HasErrors())
     {
         OnError(sendPort, problems);
         return;
     }
     IncrementRepublishCount(jsonPacket);
     OnPacket(sendPort, jsonPacket, problems);
 }
Пример #5
0
 public void Validate(JObject jsonPacket, PacketProblems problems)
 {
     foreach (string key in _requiredKeys)
     {
         if (jsonPacket[key] == null)
         {
             problems.Error("Missing required key '" + key + "'");
         }
     }
 }
Пример #6
0
 private void Validate(PacketProblems problems, JObject jsonPacket)
 {
     foreach (IValidation v in _validations)
     {
         if (problems.AreSevere())
         {
             break;
         }
         v.Validate(jsonPacket, problems);
     }
 }
Пример #7
0
 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]}\'");
     }
 }
Пример #8
0
            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}");
                }
            }
Пример #9
0
 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");
         }
     }
 }
Пример #10
0
 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] + "'");
     }
 }
Пример #12
0
 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);
 }
Пример #13
0
 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");
         }
     }
 }
Пример #14
0
        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);
            }
        }