void ICurrentService.Validate(string path, List <ValidationMessage> messages)
        {
            var vb = new ValidationBuilder(path, messages);

            if (ServiceBookingStatus != EventTypes.Event)
            {
                vb.AddValidationMessage(vb.PathName, string.Empty, "ServiceBookingStatus for CurrentService needs to be an EVENT");
            }

            if (ServiceCategory != null)
            {
                ServiceCategory.Validate(vb.Path + "ServiceCategory", vb.Messages);
            }

            if (ServiceDescription != null)
            {
                ServiceDescription.Validate(vb.Path + "ServiceDescription", vb.Messages);
            }

            if (vb.ArgumentRequiredCheck("ServiceProvider", ServiceProvider))
            {
                ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages);
            }

            vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime);
        }
        void IPendingDiagnosticInvestigation.Validate(string path, List <ValidationMessage> messages)
        {
            var vb = new ValidationBuilder(path, messages);

            if (ReasonForService != null)
            {
                ReasonForService.Validate(vb.Path + "ReasonForService", vb.Messages);
            }

            if (vb.ArgumentRequiredCheck("ServiceDescription", ServiceDescription))
            {
                ServiceDescription.Validate(vb.Path + "ServiceDescription", vb.Messages);
            }

            if (ServiceCommencementWindow != null)
            {
                ServiceCommencementWindow.Validate(vb.Path + "ServiceCommencementWindow", vb.Messages);
            }

            vb.ArgumentRequiredCheck("ServiceBookingStatus", ServiceBookingStatus);

            if (ServiceProvider != null)
            {
                ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages);
            }

            vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime);
        }
        void IRequestedService.Validate(string path, List <ValidationMessage> messages)
        {
            var vb = new ValidationBuilder(path, messages);

            if (ReasonForService != null)
            {
                ReasonForService.Validate(vb.Path + "ReasonForService", vb.Messages);
            }

            if (vb.ArgumentRequiredCheck("ServiceCategory", ServiceCategory))
            {
                ServiceCategory.Validate(vb.Path + "ServiceCategory", vb.Messages);
            }

            if (ServiceDescription != null)
            {
                ServiceDescription.Validate(vb.Path + "ServiceDescription", vb.Messages);
            }

            if (ServiceCommencementWindow != null)
            {
                ServiceCommencementWindow.Validate(vb.Path + "ServiceCommencementWindow", vb.Messages);
            }

            if (vb.ArgumentRequiredCheck("ServiceProvider", ServiceProvider))
            {
                ServiceProvider.Validate(vb.Path + "ServiceProvider", vb.Messages);
            }

            if (RequestValidityPeriod != null)
            {
                RequestValidityPeriod.Validate(vb.Path + "RequestValidityPeriod", vb.Messages);
            }

            vb.ArgumentRequiredCheck("RequestedServiceDateTime", RequestedServiceDateTime);
        }