public OstcExtraValidationResources(OstcMessageType messageType, ExtraTransportDirection transportDirection)
        {
            var type = GetType();
#if HAS_FULL_TYPE
            ResourceAssembly = type.Assembly;
#else
            ResourceAssembly = type.GetTypeInfo().Assembly;
#endif
            RootUrl = new Uri($"res:///{type.Namespace?.Replace('.', '/')}/Schema/");
            StartXmlSchemaFileName = GetXsdFileName(messageType, transportDirection);
        }
        public OstcExtraValidationResources(OstcMessageType messageType, ExtraTransportDirection transportDirection)
        {
            var type = GetType();

#if HAS_FULL_TYPE
            ResourceAssembly = type.Assembly;
#else
            ResourceAssembly = type.GetTypeInfo().Assembly;
#endif
            RootUrl = new Uri($"res:///{type.Namespace?.Replace('.', '/')}/Schema/");
            StartXmlSchemaFileName = GetXsdFileName(messageType, transportDirection);
        }
Exemple #3
0
        private void ValidateData(byte[] data, OstcMessageType messageType)
        {
            Debug.Assert(messageType == OstcMessageType.ApplicationData || messageType == OstcMessageType.KeyData || messageType == OstcMessageType.ListData || messageType == OstcMessageType.OrderData);
            if (OstcExtraValidatorFactory == null)
            {
                return;
            }
            var validator = OstcExtraValidatorFactory.Create(messageType, ExtraTransportDirection.Request);
            var document  = XDocument.Load(new MemoryStream(data));

            validator.Validate(document);
        }
        private static string GetXsdFileName(OstcMessageType messageType, ExtraTransportDirection transportDirection)
        {
            int    methodId;
            string src;

            switch (messageType)
            {
            case OstcMessageType.Application:
                src      = "Antrag";
                methodId = 1;
                break;

            case OstcMessageType.Order:
                src      = "Auftrag";
                methodId = 2;
                break;

            case OstcMessageType.Key:
                src      = "SchlüsselAnfragen";
                methodId = 3;
                break;

            case OstcMessageType.List:
                src      = "ListeAnfragen";
                methodId = 4;
                break;

            default:
                if (transportDirection == ExtraTransportDirection.Request)
                {
                    switch (messageType)
                    {
                    case OstcMessageType.ApplicationData:
                        return("OSTC 1a-Antragsdaten.xsd");

                    case OstcMessageType.OrderData:
                        return("OSTC 2a-Auftragsdaten.xsd");

                    case OstcMessageType.KeyData:
                        return("OSTC 3a-Schlüsseldaten.xsd");

                    case OstcMessageType.ListData:
                        return("OSTC 4a-Listedaten.xsd");
                    }
                }
                throw new NotSupportedException($"The combination {messageType}/{transportDirection} is not supported yet.");
            }
            return(string.Format("OSTC-{0}{2}-{1}-1.xsd", methodId, src, (transportDirection == ExtraTransportDirection.Request ? "a-request" : "b-response")));
        }
 private static string GetXsdFileName(OstcMessageType messageType, ExtraTransportDirection transportDirection)
 {
     int methodId;
     string src;
     switch (messageType)
     {
         case OstcMessageType.Application:
             src = "Antrag";
             methodId = 1;
             break;
         case OstcMessageType.Order:
             src = "Auftrag";
             methodId = 2;
             break;
         case OstcMessageType.Key:
             src = "SchlüsselAnfragen";
             methodId = 3;
             break;
         case OstcMessageType.List:
             src = "ListeAnfragen";
             methodId = 4;
             break;
         default:
             if (transportDirection == ExtraTransportDirection.Request)
             {
                 switch (messageType)
                 {
                     case OstcMessageType.ApplicationData:
                         return "OSTC 1a-Antragsdaten.xsd";
                     case OstcMessageType.OrderData:
                         return "OSTC 2a-Auftragsdaten.xsd";
                     case OstcMessageType.KeyData:
                         return "OSTC 3a-Schlüsseldaten.xsd";
                     case OstcMessageType.ListData:
                         return "OSTC 4a-Listedaten.xsd";
                 }
             }
             throw new NotSupportedException($"The combination {messageType}/{transportDirection} is not supported yet.");
     }
     return string.Format("OSTC-{0}{2}-{1}-1.xsd", methodId, src, (transportDirection == ExtraTransportDirection.Request ? "a-request" : "b-response"));
 }
 private void ValidateData(byte[] data, OstcMessageType messageType)
 {
     Debug.Assert(messageType == OstcMessageType.ApplicationData || messageType == OstcMessageType.KeyData || messageType == OstcMessageType.ListData || messageType == OstcMessageType.OrderData);
     if (OstcExtraValidatorFactory == null)
         return;
     var validator = OstcExtraValidatorFactory.Create(messageType, ExtraTransportDirection.Request);
     var document = XDocument.Load(new MemoryStream(data));
     validator.Validate(document);
 }
 private void ValidateRequest(TransportRequestType request, OstcMessageType messageType)
 {
     var data = OstcUtils.Serialize(request, Encoding.UTF8);
     ValidateRequest(data, messageType);
 }
 public IExtraValidator Create(OstcMessageType messageType, ExtraTransportDirection transportDirection)
 {
     return new OstcExtraValidator(messageType, transportDirection);
 }
 /// <summary>
 /// Initialisiert eine neue Instanz der <see cref="OstcExtraValidator"/> Klasse.
 /// </summary>
 /// <param name="messageType">Die Meldungsart die zu prüfen ist</param>
 /// <param name="transportDirection">Gesendete oder empfangene Meldung?</param>
 public OstcExtraValidator(OstcMessageType messageType, ExtraTransportDirection transportDirection)
     : base(new OstcExtraValidationResources(messageType, transportDirection))
 {
 }
 public IExtraValidator Create(OstcMessageType messageType, ExtraTransportDirection transportDirection)
 {
     return(new OstcExtraValidator(messageType, transportDirection));
 }
 /// <summary>
 /// Initialisiert eine neue Instanz der <see cref="OstcExtraValidator"/> Klasse.
 /// </summary>
 /// <param name="messageType">Die Meldungsart die zu prüfen ist</param>
 /// <param name="transportDirection">Gesendete oder empfangene Meldung?</param>
 public OstcExtraValidator(OstcMessageType messageType, ExtraTransportDirection transportDirection)
     : base(new OstcExtraValidationResources(messageType, transportDirection))
 {
 }
Exemple #12
0
        private void ValidateRequest(TransportRequestType request, OstcMessageType messageType)
        {
            var data = OstcUtils.Serialize(request, Encoding.UTF8);

            ValidateRequest(data, messageType);
        }