public void Validate(ValidationResult result) { if (EntityHeader.IsNullOrEmpty(Transport)) { result.AddUserError("Transport is a Required Field."); return; } switch (Transport.Value) { case TransportTypes.MQTT: if (String.IsNullOrEmpty(Topic)) { result.AddUserError("Topic is a Required Field."); } if (EntityHeader.IsNullOrEmpty(QualityOfServiceLevel)) { result.AddUserError("QOS Must Be Defined"); } break; case TransportTypes.AzureServiceBus: if (String.IsNullOrEmpty(QueueName)) { result.AddUserError("Queue Name a Required Field."); } break; case TransportTypes.RestHttp: case TransportTypes.RestHttps: if (String.IsNullOrEmpty(HttpVerb)) { result.AddUserError("HTTP Verb is a Required Field."); } else { HttpVerb = HttpVerb.ToUpper(); if (HttpVerb != HttpVerb_GET && HttpVerb != HttpVerb_PUT && HttpVerb != HttpVerb_POST && HttpVerb != HttpVerb_DELETE) { result.AddUserError("Currently only the HTTP Verbs GET, POST, PUT and DELETE are supported."); } } break; } foreach (var hdr in MessageHeaders) { hdr.Validate(result); } }