コード例 #1
0
        public VerifyValidationItems(VerifyValidationItemsOptions arguments, ILoggerFactory loggerFactory)
        {
            _arguments     = arguments;
            _loggerFactory = loggerFactory;

            _logger = loggerFactory.CreateLogger <VerifyValidationItems>();

            ValidateArguments(arguments);
        }
コード例 #2
0
        public override async Tasks.Task <OperationResultEnum> Execute()
        {
            Questionnaire questionnaire = _generator.GenerateQuestionnaireFromFlatFile(_arguments);

            if (questionnaire == null)
            {
                _issues.Add(new Issue
                {
                    Details  = $"Failed to extract Questionnaire from flat file format\nLocation: '{_arguments.Questionnaire.Path}'.",
                    Severity = IssueSeverityEnum.Error,
                });
            }

            string filename = $"{questionnaire.Name}-{ questionnaire.Language}-{questionnaire.Version}.{_arguments.MimeType}";

            IOUtility.GenerateLegalFilename(filename);

            questionnaire.SerializeResourceToDisk(FhirVersion.R4, filename, _arguments.MimeType);

            _logger.LogInformation($"Questionnaire written in '{_arguments.MimeType}' format to local disk: {filename}");
            _logger.LogInformation($"Questionnaire will be assigned the Id: {questionnaire.Id}");

            if (!_arguments.SkipValidation)
            {
                var opts = new VerifyValidationItemsOptions {
                    Questionnaire = new WithFhirFile(filename), MimeType = _arguments.MimeType
                };
                var verifyValidationOperation = new VerifyValidationItems(opts, _loggerFactory);
                await verifyValidationOperation.Execute();

                _issues.AddRange(verifyValidationOperation.Issues);
            }

            return(_issues.Any(issue => issue.Severity == IssueSeverityEnum.Error)
                ? OperationResultEnum.Failed
                : OperationResultEnum.Succeeded);
        }
コード例 #3
0
 private void ValidateArguments(VerifyValidationItemsOptions arguments)
 {
     arguments.Questionnaire.Validate(nameof(arguments.Questionnaire));
 }