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(); }
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")); }
public async Task <ValidatedApiResponse <string> > UpdateTemplateDescription(TemplateDescriptionUpdateCommand command) { string url = "templates/build/metadata"; return(await ValidatedPutAsync <string, TemplateDescriptionUpdateCommand>(url, command)); }