Ejemplo n.º 1
0
        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);
            }
        }