public void Nao_Deve_Cadastrar_Categoria_Com_Parametros_Invalidos() { var cadastroEntrada = new CadastrarCategoriaEntrada(0, string.Empty, "Z"); _categoriaServico = Substitute.For <CategoriaServico>(_categoriaRepositorio, _uow); var saida = _categoriaServico.CadastrarCategoria(cadastroEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == CategoriaMensagem.Nome_Obrigatorio_Nao_Informado), string.Join(", ", saida.Mensagens)); }
public async Task <ISaida> CadastrarCategoria([FromBody, SwaggerParameter("Informações de cadastro da categoria.", Required = true)] CadastrarCategoriaViewModel model) { var cadastrarEntrada = new CadastrarCategoriaEntrada( base.ObterIdUsuarioClaim(), model.Nome, model.Tipo, model.IdCategoriaPai); return(await _categoriaServico.CadastrarCategoria(cadastrarEntrada)); }
public Categoria(CadastrarCategoriaEntrada cadastrarEntrada) { if (cadastrarEntrada.Invalido) { return; } this.IdUsuario = cadastrarEntrada.IdUsuario; this.IdCategoriaPai = cadastrarEntrada.IdCategoriaPai; this.Nome = cadastrarEntrada.Nome; this.Tipo = cadastrarEntrada.Tipo; }
public async Task <ISaida> CadastrarCategoria(CadastrarCategoriaEntrada cadastroEntrada) { // Verifica se as informações para cadastro foram informadas corretamente if (cadastroEntrada.Invalido) { return(new Saida(false, cadastroEntrada.Mensagens, null)); } // Verifica se já existe uma categoria com o mesmo nome e mesmo tipo this.NotificarSeVerdadeiro( await _categoriaRepositorio.VerificarExistenciaPorNomeTipo(cadastroEntrada.IdUsuario, cadastroEntrada.Nome, cadastroEntrada.Tipo), CategoriaMensagem.Categoria_Com_Mesmo_Nome_Tipo); if (cadastroEntrada.IdCategoriaPai.HasValue) { var categoriaPai = await _categoriaRepositorio.ObterPorId(cadastroEntrada.IdCategoriaPai.Value); // Verifica se a categoria pai existe this.NotificarSeNulo(categoriaPai, string.Format(CategoriaMensagem.Categoria_Pai_Nao_Existe, cadastroEntrada.IdCategoriaPai.Value)); if (categoriaPai != null) { // Verificar se o tipo da categoria é igual ao tipo da categoria pai this.NotificarSeDiferentes(cadastroEntrada.Tipo, categoriaPai.Tipo, CategoriaMensagem.Tipo_Nao_Pode_Ser_Diferente_Tipo_Categoria_Pai); } } if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var categoria = new Categoria(cadastroEntrada); await _categoriaRepositorio.Inserir(categoria); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { CategoriaMensagem.Categoria_Cadastrada_Com_Sucesso }, new CategoriaSaida(await _categoriaRepositorio.ObterPorId(categoria.Id)))); }