public When_i_update_template_description()
            {
                _command = new TemplateDescriptionUpdateCommand
                {
                    Description = "Lorem ipsum",
                    TemplateId  = Guid.NewGuid().ToString()
                };
                _originalAuthor = new Reference("111", "FirstTestUser");
                _editor         = new Reference("222", "SecondTestUser");

                SetupMocks();

                _service = new TemplateBuilderService(
                    _validatorFactory,
                    Substitute.For <IFundingTemplateValidationService>(),
                    Substitute.For <ITemplateMetadataResolver>(),
                    _versionRepository,
                    _templateRepository,
                    _searchRepository,
                    _policyRepository,
                    Substitute.For <ITemplateBlobService>(),
                    Substitute.For <ILogger>());

                _result = _service.UpdateTemplateDescription(_command, _editor).GetAwaiter().GetResult();
            }
Exemplo n.º 2
0
        public async Task <CommandResult> UpdateTemplateDescription(TemplateDescriptionUpdateCommand command, Reference author)
        {
            ValidationResult validatorResult = await _validatorFactory.Validate(command);

            validatorResult.Errors.AddRange((await _validatorFactory.Validate(author))?.Errors);

            if (!validatorResult.IsValid)
            {
                return(CommandResult.ValidationFail(validatorResult));
            }

            var template = await _templateRepository.GetTemplate(command.TemplateId);

            if (template?.Current == null)
            {
                return(CommandResult.ValidationFail(nameof(command.TemplateId), "Template doesn't exist"));
            }

            if (template.Description == command.Description)
            {
                return(CommandResult.Success());
            }

            var updated = await UpdateTemplateDescription(command, author, template);

            if (!updated.IsSuccess())
            {
                return(CommandResult.Fail($"Failed to update template: {updated}"));
            }

            return(CommandResult.Success());
        }
        public async Task <IActionResult> UpdateTemplateDescription(TemplateDescriptionUpdateCommand command)
        {
            ValidationResult validationResult = await _validatorFactory.Validate(command);

            if (!validationResult.IsValid)
            {
                return(validationResult.AsBadRequest());
            }

            Reference author = ControllerContext.HttpContext.Request?.GetUserOrDefault();

            CommandResult result = await _templateBuilderService.UpdateTemplateDescription(command, author);

            if (result.Succeeded)
            {
                return(Ok());
            }

            if (result.ValidationResult != null)
            {
                return(result.ValidationResult.AsBadRequest());
            }

            return(new InternalServerErrorResult(result.ErrorMessage ?? result.Exception?.Message ?? "Unknown error occurred"));
        }
Exemplo n.º 4
0
        public async Task <ValidatedApiResponse <string> > UpdateTemplateDescription(TemplateDescriptionUpdateCommand command)
        {
            string url = "templates/build/metadata";

            return(await ValidatedPutAsync <string, TemplateDescriptionUpdateCommand>(url, command));
        }