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); }
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)); }