public async Task <Result <EditoraModel> > UpdateEditoraAsync(Guid editoraId, EditoraModel editoraModel) { Guard.Against.NullOrEmpty(editoraId, "EditoraId"); var editora = await _repositorio.GetByIdAsync(editoraId); if (editora is null) { _logger.LogWarning("Não foi encontrado editora com id igual a '{0}'", editoraId); return(Result <EditoraModel> .NotFound()); } editora.Nome = !string.IsNullOrEmpty(editoraModel.Nome) && editora.Nome != editoraModel.Nome ? editoraModel.Nome : editora.Nome; editora.SiteURL = editora.SiteURL != editoraModel.SiteURL ? editoraModel.SiteURL : editora.SiteURL; editora.Endereco = !string.IsNullOrEmpty(editoraModel.Endereco) && editora.Endereco != editoraModel.Endereco ? editoraModel.Endereco : editora.Endereco; editora.DataAtualizacao = DateTime.Now; var validator = new EditoraValidator(); var resultValidation = validator.Validate(editora); if (!resultValidation.IsValid) { _logger.LogWarning("Atualização da editora não passou na validação. Erros: {0}", resultValidation.Errors.ToJson()); return(Result <EditoraModel> .Invalid(resultValidation.AsErrors())); } await _repositorio.UpdateAsync(editora); _logger.LogInformation("Editora foi atualizada com sucesso", editora.ToJson()); return(Result <EditoraModel> .Success( _mapper.Map <EditoraModel>(editora))); }
public async Task <Result <EditoraModel> > AddEditoraAsync(EditoraModel editora) { var novaEditora = _mapper.Map <Editora>(editora); var validator = new EditoraValidator(); var resultValidation = validator.Validate(novaEditora); if (!resultValidation.IsValid) { _logger.LogWarning("Nova editora não passou na validação. Erros: {0}", resultValidation.Errors.ToJson()); return(Result <EditoraModel> .Invalid(resultValidation.AsErrors())); } var editoraAdicionada = await _repositorio.AddAsync(novaEditora); Guard.Against.Null(editoraAdicionada, "Novo editora"); _logger.LogInformation("Nova editora foi inserida com sucesso"); return(Result <EditoraModel> .Success( _mapper.Map <EditoraModel>(editoraAdicionada))); }