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));
        }
Example #2
0
        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));
        }
Example #3
0
        public Categoria(CadastrarCategoriaEntrada cadastrarEntrada)
        {
            if (cadastrarEntrada.Invalido)
            {
                return;
            }

            this.IdUsuario      = cadastrarEntrada.IdUsuario;
            this.IdCategoriaPai = cadastrarEntrada.IdCategoriaPai;
            this.Nome           = cadastrarEntrada.Nome;
            this.Tipo           = cadastrarEntrada.Tipo;
        }
Example #4
0
        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))));
        }