private bool AreScpSourcesValid(ScpConfiguration scp, bool readSourcesFromCrd)
        {
            var valid = true;

            if (scp.Sources.IsNullOrEmpty())
            {
                if (scp.RejectUnknownSources && !readSourcesFromCrd)
                {
                    _logger.Log(LogLevel.Error, "No DICOM SCP source configured: DicomAdapter>dicom>scp>sources and rejectUnknownSources is on.");
                    valid = false;
                }
                else if (scp.RejectUnknownSources && readSourcesFromCrd)
                {
                    scp.Sources.Clear();
                    _logger.Log(LogLevel.Information, "DICOM Source AE Titles will be read from Kubernetes Custom Resource.");
                }
                else
                {
                    _logger.Log(LogLevel.Warning, "No DICOM SCP source configured: DicomAdapter>dicom>scp>sources. All associations will be accepted.");
                }
            }

            foreach (var source in scp.Sources)
            {
                valid &= IsSourceValid(source);
            }

            return(valid);
        }
        private bool IsDicomScpConfigValid(ScpConfiguration scpConfiguration)
        {
            var valid = ValidationExtensions.IsPortValid("DicomAdapter>dicom>scp>port", scpConfiguration.Port, _validationErrors);

            valid &= IsValueInRange("DicomAdapter>dicom>scp>max-associations", 1, 1000, scpConfiguration.MaximumNumberOfAssociations);

            scpConfiguration.Verification.SetDefaultValues();
            valid &= AreVerificationTransferSyntaxesValid(scpConfiguration.Verification.TransferSyntaxes);
            return(valid);
        }
        private bool IsDicomScpConfigValid(ScpConfiguration scpConfiguration, bool readAeTitlesFromCrd)
        {
            var valid = IsPortValid("DicomAdapter>dicom>scp>port", scpConfiguration.Port);

            valid &= AreAeTitlesValid("DicomAdapter>dicom>scp>aeTitle", scpConfiguration.AeTitles, readAeTitlesFromCrd);
            valid &= IsValueInRange("DicomAdapter>dicom>scp>max-associations", 1, Int32.MaxValue, scpConfiguration.MaximumNumberOfAssociations);
            valid &= AreVerificationTransferSyntaxesValid(scpConfiguration.Verification.TransferSyntaxes);
            valid &= AreScpSourcesValid(scpConfiguration, readAeTitlesFromCrd);
            return(valid);
        }