public async Task <IActionResult> RegistarProduto([FromForm] RegistarProdutoDTO model) { _logger.LogDebug("A executar api/produto/registar -> Post"); if (model is null) { _logger.LogWarning("O objeto RegistarProdutoDTO é null!"); return(BadRequest(nameof(model))); } try { ServiceResult <string> resultadoValidacaoImagem = _imagemService.ValidaImagem(model.File); if (!resultadoValidacaoImagem.Sucesso) { _logger.LogInformation("O ficheiro não é válido para o sistema."); return(BadRequest(resultadoValidacaoImagem.Erros)); } else { ServiceResult <Tuple <string, string> > resultado = _produtoBusiness.RegistarProduto(model, resultadoValidacaoImagem.Resultado); if (resultado.Sucesso) { await _imagemService.GuardarImagem(model.File, resultado.Resultado.Item1, resultado.Resultado.Item2, _webHostEnvironment.WebRootPath.ToString()); _logger.LogInformation($"O Produto com nome {model.Nome}, com o preço {model.Preco} pertencente à categoria com idCategoria {model.IdCategoria} foi registado com sucesso."); return(Ok()); } else { _logger.LogInformation($"Ocorreu um erro ao registar o Produto com nome {model.Nome}."); return(BadRequest(resultado.Erros)); } } } catch (ArgumentNullException e) { _logger.LogError(e, e.Message); return(BadRequest(new { message = e.Message })); } catch (Exception e) { _logger.LogError(e, e.Message); return(StatusCode(500)); } }