public ServiceResult <IList <ProdutoViewDTO> > GetProdutosAtivadosCategoria(int idCategoria) { _logger.LogDebug("A executar [CategoriaBusiness -> GetProdutosAtivadosCategoria]"); IList <int> erros = new List <int>(); IList <ProdutoViewDTO> produtosViewDTO = new List <ProdutoViewDTO>(); if (!_categoriaDAO.ExisteCategoria(idCategoria)) { _logger.LogWarning($"A Categoria com IdCategoria {idCategoria} não existe!"); erros.Add((int)ErrosEnumeration.CategoriaNaoExiste); } else { if (_categoriaDAO.IsAtiva(idCategoria)) { IList <Produto> produtos = _categoriaDAO.GetProdutosAtivadosCategoria(idCategoria); if (produtos != null) { string pathImagem = $"{_appSettings.ServerUrl}/Images/Produto"; foreach (Produto produto in produtos) { ProdutoViewDTO produtoViewDTO = _mapper.Map <ProdutoViewDTO>(produto); produtoViewDTO.Url = new Uri($"{pathImagem}/{produto.IdProduto}.{produto.ExtensaoImagem}"); produtosViewDTO.Add(produtoViewDTO); } } } else { _logger.LogDebug($"A Categoria com IdCategoria {idCategoria} encontra-se desativada!"); erros.Add((int)ErrosEnumeration.CategoriaDesativada); } } return(new ServiceResult <IList <ProdutoViewDTO> > { Erros = new ErrosDTO { Erros = erros }, Sucesso = !erros.Any(), Resultado = produtosViewDTO }); }
public ServiceResult <Tuple <string, string> > RegistarProduto(RegistarProdutoDTO model, string extensao) { _logger.LogDebug("A executar [ProdutoBusiness -> RegistarProduto]"); if (string.IsNullOrWhiteSpace(model.Nome)) { throw new ArgumentNullException("Nome", "Campo não poder ser nulo!"); } if (model.Ingredientes == null) { throw new ArgumentNullException("Ingredientes", "Campo não poder ser nulo!"); } if (model.Alergenios == null) { throw new ArgumentNullException("Alergenios", "Campo não poder ser nulo!"); } if (extensao == null) { throw new ArgumentNullException("Extensao", "Campo não poder ser nulo!"); } IList <int> erros = new List <int>(); Tuple <string, string> paths = null; if (_produtoDAO.ExisteNomeProduto(model.Nome)) { _logger.LogDebug($"O Produto com o Nome {model.Nome} já existe."); Produto produto = _produtoDAO.GetProdutoNome(model.Nome); if (_produtoDAO.IsAtivo(produto.IdProduto)) { _logger.LogDebug($"O Produto com o Nome {model.Nome} já existe, com IdProdudo {produto.IdProduto} e encontra-se ativado."); erros.Add((int)ErrosEnumeration.NomeProdutoJaExiste); } else { _logger.LogDebug($"O Produto com o Nome {model.Nome} já existe, com IdProdudo {produto.IdProduto} e encontra-se desativado."); erros.Add((int)ErrosEnumeration.ProdutoDesativado); } } else { if (!ValidaNome(model.Nome)) { _logger.LogDebug($"O Nome {model.Nome} é inválido."); erros.Add((int)ErrosEnumeration.NomeProdutoInvalido); } if (!ValidaPreco(model.Preco)) { _logger.LogDebug($"O Preço {model.Preco} é inválido."); erros.Add((int)ErrosEnumeration.PrecoProdutoInvalido); } if (!_categoriaDAO.ExisteCategoria(model.IdCategoria)) { _logger.LogWarning($"Não existe nenhuma Categoria com IdCategooria {model.IdCategoria}!"); erros.Add((int)ErrosEnumeration.CategoriaNaoExiste); } if (!ValidaIngredientes(model.Ingredientes)) { _logger.LogDebug($"O nome de um ingrediente é inválido."); erros.Add((int)ErrosEnumeration.IngredientesProdutoInvalidos); } if (!ValidaAlergenios(model.Alergenios)) { _logger.LogDebug($"O nome de um alergenio é inválido."); erros.Add((int)ErrosEnumeration.AlergeniosProdutoInvalidos); } if (!erros.Any()) { Produto produto = _mapper.Map <Produto>(model); produto.ExtensaoImagem = extensao; int idProduto = _produtoDAO.RegistarProduto(produto); string pathAnterior = null; string pathNova = Path.Combine("Images", "Produto", $"{idProduto}.{extensao}"); paths = new Tuple <string, string>(pathAnterior, pathNova); } } return(new ServiceResult <Tuple <string, string> > { Erros = new ErrosDTO { Erros = erros }, Sucesso = !erros.Any(), Resultado = paths }); }