示例#1
0
        public async Task <int> Create(FornecedorRequestModel request)
        {
            var fornecedor = new FornecedorBuilder()
                             .ComRazaoSocial(request.RazaoSocial)
                             .ComNomeFantasia(request.NomeFantasia)
                             .ComTelefone(request.Telefone)
                             .ComEmail(request.Email)
                             .ComCNPJ(request.CNPJ)
                             .ComRua(request.Endereco.Rua)
                             .ComNumero(request.Endereco.Numero)
                             .ComComplemento(request.Endereco.Complemento)
                             .ComBairro(request.Endereco.Bairro)
                             .ComCEP(request.Endereco.CEP)
                             .ComCidade(request.Endereco.Cidade)
                             .ComUF(request.Endereco.UF)
                             .Build();

            fornecedor.Validate();
            var fornecedorJaExiste = await _repository.VerificarSeFornecedorJaExiste(fornecedor.CNPJ);

            if (fornecedorJaExiste)
            {
                throw new ArgumentException("Fornecedor já existe.");
            }
            await _repository.Create(fornecedor);

            return(fornecedor.Id);
        }
 public void Update(FornecedorBuilder builder)
 {
     RazaoSocial  = builder.RazaoSocial;
     CNPJ         = builder.CNPJ;
     NomeFantasia = builder.NomeFantasia;
     Telefone     = builder.Telefone;
     Email        = builder.Email;
     Endereco     = new Endereco(builder);
 }
 public static FornecedorEntity Of(FornecedorBuilder builder) => new FornecedorEntity
 {
     RazaoSocial  = builder.RazaoSocial,
     CNPJ         = builder.CNPJ,
     NomeFantasia = builder.NomeFantasia,
     Telefone     = builder.Telefone,
     Email        = builder.Email,
     Endereco     = new Endereco(builder)
 };
 public Endereco(FornecedorBuilder builder)
 {
     Rua         = builder.Rua;
     Bairro      = builder.Bairro;
     Cidade      = builder.Cidade;
     CEP         = builder.CEP;
     Numero      = builder.Numero;
     Complemento = builder.Complemento;
     UF          = builder.UF;
 }
        public void IncluirFornecedor()
        {
            var builder = new FornecedorBuilder();

            builder
            .ComNome(Nome)
            .ComDocumento(Documento)
            .ComContato(Contato)
            .NaCategoria(Categoria)
            .NaDataAtual();
            _fornecedorCadastrado = builder.Constroi();
        }
        public void Atualizar_Fornecedor()
        {
            var fornecedorId = 1;
            var fornecedor   = new FornecedorBuilder()
                               .ComRazaoSocial("barbara Cosmeticos")
                               .ComCNPJ("97.598.988/0001-74")
                               .ComNomeFantasia("Claudio")
                               .ComBairro("Ponta Aguda")
                               .ComCidade("Blumenau")
                               .ComRua("Rua Paraguay")
                               .ComNumero("270")
                               .ComComplemento("Apto 502")
                               .ComUF("SC")
                               .ComCEP("89050020")
                               .ComEmail("*****@*****.**")
                               .ComTelefone("433222335")
                               .ComId(fornecedorId)
                               .Build();

            fornecedor.Update(new FornecedorBuilder()
                              .ComRazaoSocial("Kruger Cosméticos")
                              .ComCNPJ("08.632.688/0001-34")
                              .ComNomeFantasia("Kruge Beleza")
                              .ComBairro("Escola Agricola")
                              .ComCidade("Blumenau")
                              .ComRua("Rua Joinville")
                              .ComNumero("77")
                              .ComComplemento("Sala 502")
                              .ComUF("SC")
                              .ComCEP("89037656")
                              .ComEmail("*****@*****.**")
                              .ComTelefone("4733990785")
                              .ComId(fornecedorId)
                              );

            fornecedor.CNPJ.Should().Be("08.632.688/0001-34");
            fornecedor.Email.Should().Be("*****@*****.**");
            fornecedor.Telefone.Should().Be("4733990785");
            fornecedor.Endereco.Bairro.Should().Be("Escola Agricola");
            fornecedor.Endereco.Rua.Should().Be("Rua Joinville");
            fornecedor.Endereco.Cidade.Should().Be("Blumenau");
            fornecedor.Endereco.Numero.Should().Be("77");
            fornecedor.Endereco.UF.Should().Be("SC");
            fornecedor.Endereco.Complemento.Should().Be("Sala 502");
            fornecedor.Endereco.CEP.Should().Be("89037656");
            fornecedor.NomeFantasia.Should().Be("Kruge Beleza");
            fornecedor.Id.Should().Be(fornecedorId);
            fornecedor.RazaoSocial.Should().Be("Kruger Cosméticos");
        }
        public void CriarBuilder()
        {
            var fornecedor = new FornecedorBuilder();

            fornecedor
            .ComContato(new Contato("José Augusto", "21934567890"))
            .ComNome("AutoViação Fast")
            .ComDocumento("012.345.678/0001-90")
            .NaCategoria(new Categoria("Transporte"))
            .NaDataAtual();

            var autoViacaoFast = fornecedor.Constroi();

            Assert.AreEqual(autoViacaoFast.Categoria.Nome, "Transporte");
        }
        public void CriacaoSolicitacao()
        {
            var paulo = new Solicitante("Paulo", "*****@*****.**");

            ISolicitado representanteComercial = new Cliente("Trufell Alimentação");

            representanteComercial.IncluirContato(new Contato("Representante Comercial",
                                                              "*****@*****.**"));

            ISolicitado novoFornecedor = new FornecedorBuilder()
                                         .ComNome("Fazendo Cacau Puro")
                                         .ComContato(new Contato("Representante Fornecedor", "*****@*****.**"))
                                         .ComDocumento("123.456.789/0001-90")
                                         .NaDataAtual()
                                         .NaCategoria(new Categoria("Transporte"))
                                         .Constroi();

            var inclusaoCliente    = new Solicitacao(paulo, representanteComercial, "Inclusao De Cliente");
            var inclusaoFornecedor = new Solicitacao(paulo, novoFornecedor, "Inclusao De Fornecedor");

            Assert.AreEqual(inclusaoCliente.Solicitante.Email, paulo.Email);
            Assert.AreEqual(inclusaoCliente.Solicitante.Email, "*****@*****.**");
            Assert.AreEqual(inclusaoFornecedor.Solicitante.Email, "*****@*****.**");
        }
示例#9
0
        public async Task <FornecedorEntity> Update(int id, FornecedorRequestModel request)
        {
            var fornecedor = await _repository.GetById(id);

            if (fornecedor == null)
            {
                throw new ArgumentException("Id invalido.");
            }

            var fornecedorRequestModel = new FornecedorBuilder()
                                         .ComRazaoSocial(request.RazaoSocial)
                                         .ComNomeFantasia(request.NomeFantasia)
                                         .ComTelefone(request.Telefone)
                                         .ComEmail(request.Email)
                                         .ComCNPJ(request.CNPJ)
                                         .ComRua(request.Endereco.Rua)
                                         .ComNumero(request.Endereco.Numero)
                                         .ComComplemento(request.Endereco.Complemento)
                                         .ComBairro(request.Endereco.Bairro)
                                         .ComCEP(request.Endereco.CEP)
                                         .ComCidade(request.Endereco.Cidade)
                                         .ComUF(request.Endereco.UF);

            fornecedor.Update(fornecedorRequestModel);
            fornecedor.Validate();

            var verificandoCnpj = await _repository.ExisteFornecedorComEsseCnpj(fornecedor.CNPJ, fornecedor.Id);

            if (verificandoCnpj)
            {
                throw new ArgumentException("Fornecedor não poderá ser cadastrado.");
            }
            await _repository.Update(fornecedor);

            return(fornecedor);
        }
示例#10
0
        public void CriarCadastroFornecedor()
        {
            Solicitante usuarioSistema = new Solicitante("Bruno Alves", "*****@*****.**");

            Fornecedor barracaDoZe = new FornecedorBuilder()
                                     .ComContato(new Contato("Zé", "*****@*****.**"))
                                     .ComDocumento("12.234.567-0")
                                     .ComNome("José Araújo de Lima")
                                     .NaCategoria(new Categoria("Alimentícios"))
                                     .NaDataAtual()
                                     .Constroi();

            Solicitacao solicitacaoCadastro = new Solicitacao(usuarioSistema, barracaDoZe, "Inclusão de Fornecedor");

            //fluxo Solicitação Costumizada
            var passoA = new Passo(1, "PassoA");
            var passoB = new Passo(2, "PassoB");
            var passoC = new Passo(3, "PassoC");
            var passoD = new Passo(4, "PassoD");

            passoA.AdicionarProximoPasso(new List <Passo> {
                passoB, passoC
            });
            passoB.AdicionarProximoPasso(new List <Passo> {
                passoD
            });
            passoC.AdicionarProximoPasso(new List <Passo> {
                passoD
            });

            passoB.AdicionarPassoAnterior(new List <Passo>()
            {
                passoA
            });
            passoC.AdicionarPassoAnterior(new List <Passo>()
            {
                passoA
            });
            passoD.AdicionarPassoAnterior(new List <Passo>()
            {
                passoB, passoC
            });

            var fluxo = new WorkFlow();

            fluxo.AdicionarPasso(new List <Passo> {
                passoA
            });
            fluxo.AdicionarPasso(new List <Passo> {
                passoB, passoC
            });
            fluxo.AdicionarPasso(new List <Passo> {
                passoD
            });

            CadastroDeFornecedor cadastro = new CadastroDeFornecedor(barracaDoZe, solicitacaoCadastro, fluxo);

            //Aprovar P1
            Assert.AreEqual(cadastro.Fluxo.PassoAtual.Descricao, passoA.Descricao);
            fluxo.AprovarPassoAtual(passoA);
            //Aprovar P2
            Assert.AreEqual(cadastro.Fluxo.PassoAtual.Descricao, passoB.Descricao);
            fluxo.AprovarPassoAtual(passoB);
            //Aprovar P3
            Assert.AreEqual(cadastro.Fluxo.PassoAtual.Descricao, passoC.Descricao);
            fluxo.AprovarPassoAtual(passoC);
            //Aprovar P4
            Assert.AreEqual(cadastro.Fluxo.PassoAtual.Descricao, passoD.Descricao);
            fluxo.AprovarPassoAtual(passoD);
        }