Example #1
0
        public void ProcessarCadastro(UsuarioViewModel obj, Guid?idGuid = null)
        {
            Guid id = idGuid ?? Guid.Parse(User.Identity.GetUserId());

            var domain = ctx.Usuario
                         .FirstOrDefault(w => w.ID_USUARIO == id);

            if (domain == null)
            {
                var newobj = new USUARIO(id, obj.NOME, new CPF(obj.CPF), new RG(obj.RgUF, obj.RgNR), obj.DT_NASCIMENTO);

                newobj.AdicionarContato(new Telefone(obj.ContatoFIXO), new Telefone(obj.ContatoCELULAR), new DATA.ValueObject.Email(User.Identity.GetEmailAdress()));
                newobj.AdicionarEndereco(obj.UF, obj.CEP, obj.LOGRADOURO, obj.COMPLEMENTO, obj.BAIRRO, obj.CIDADE);

                ctx.Usuario.Add(newobj);

                ctx.SaveChanges();

                MoedaHelper.Movimentar(ctx, id, 1000, "CADASTRO NO SISTEMA");
            }
            else
            {
                domain.AtualizaDados(obj.NOME, new CPF(obj.CPF), new RG(obj.RgUF, obj.RgNR), obj.DT_NASCIMENTO);

                domain.AtualizarContato(new Telefone(obj.ContatoFIXO), new Telefone(obj.ContatoCELULAR));
                domain.AdicionarEndereco(obj.UF, obj.CEP, obj.LOGRADOURO, obj.COMPLEMENTO, obj.BAIRRO, obj.CIDADE);

                ctx.Entry(domain).State = EntityState.Modified;

                ctx.SaveChanges();
            }
        }
        public async Task Integration_ValidarInsertUsuario()
        {
            Guid id = new Guid();

            //gera uma nova classe para testes
            var domain = new USUARIO(id, "USUARIO TESTE", new CPF("50869388720"), new RG(DATA.Enum.EnumUF.PE, "1234567"), DateTime.Now.AddYears(-30));

            domain.AdicionarContato(new Telefone("(81) 33793968"), new Telefone("(81) 994059945"), new Email("*****@*****.**"));
            domain.AdicionarEndereco(DATA.Enum.EnumUF.PE, "50741970", "Rua Azeredo Coutinho", "", "Várzea", "Recife");
            var model = Mapper.Map <UsuarioViewModel>(domain); //converte a classe original para o viewmodel (que é reconhecida pela view)

            try
            {
                //se comunica com o controller
                var ctx = new Contexto();
                ctx.Database.BeginTransaction(); //inicia uma transação para controlar os dados manipulados no banco de dados

                var controller = new ManageController(ctx);
                await controller.ProcessarCadastro(model, id);

                //recupera o novo usuario inserido no banco
                var domainNew = await ctx.Usuario.FirstAsync(w => w.CPF.NR == "50869388720");

                ctx.Database.CurrentTransaction.Rollback(); //retorna qualquer mudança feita no banco de dados

                //teste finalmente se existe usuario inserido no banco e é o mesmo gerado no inicio do método
                Assert.AreEqual(model.CPF, domainNew.CPF.NR);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public async Task Integration_InsertUsuarioRGFaltando()
        {
            var domain = new USUARIO(new Guid(), "USUARIO DE TESTE", new CPF("19854269476"), new RG(DATA.Enum.EnumUF.PE, "1234567"), DateTime.Now.AddYears(-30));

            domain.AdicionarContato(new Telefone("33793968"), new Telefone("994059945"), new Email("*****@*****.**"));
            domain.AdicionarEndereco(DATA.Enum.EnumUF.PE, "50741970", "Rua Azeredo Coutinho", "", "Várzea", "Recife");
            var model = Mapper.Map <UsuarioViewModel>(domain);

            ctx.Database.BeginTransaction();

            var        controller = new ManageController(ctx);
            ViewResult result     = await controller.Create(model) as ViewResult;

            ctx.Database.CurrentTransaction.Rollback();
        }
        public async Task Integration_InsertUsuarioTodosDadosFaltando()
        {
            var domain = new USUARIO(new Guid(), "", new CPF(""), new RG(DATA.Enum.EnumUF.PE, ""), DateTime.Now.AddYears(-0));

            domain.AdicionarContato(new Telefone(""), new Telefone(""), new Email(""));
            domain.AdicionarEndereco(DATA.Enum.EnumUF.PE, "", "", "", "", "");
            var model = Mapper.Map <UsuarioViewModel>(domain);

            ctx.Database.BeginTransaction();

            var        controller = new ManageController(ctx);
            ViewResult result     = await controller.Create(model) as ViewResult;

            ctx.Database.CurrentTransaction.Rollback();
        }
        public async Task Integration_InsertUsuarioDadosErrados()
        {
            var domain = new USUARIO(new Guid(), "USU4RI0 T3ST3", new CPF("19865260abc"), new RG(DATA.Enum.EnumUF.PE, "abc1589"), DateTime.Now.AddYears(-50));

            domain.AdicionarContato(new Telefone("3379tyui"), new Telefone("994059sed"), new Email("*****@*****.**"));
            domain.AdicionarEndereco(DATA.Enum.EnumUF.PE, "5074zxsc", "Rua Azeredo Coutinho", "", "Várzea", "Recife");

            var model = Mapper.Map <UsuarioViewModel>(domain);

            ctx.Database.BeginTransaction();

            var        controller = new ManageController(ctx);
            ViewResult result     = await controller.Create(model) as ViewResult;

            ctx.Database.CurrentTransaction.Rollback();
        }
Example #6
0
        public async Task ProcessarCadastro(UsuarioViewModel obj, Guid?idGuid = null)
        {
            try
            {
                Guid id = idGuid ?? Guid.Parse(User.Identity.GetUserId());

                var domain = await ctx.Usuario
                             .Include(i => i.CONTATO)
                             .Include(i => i.ENDERECO)
                             .FirstOrDefaultAsync(w => w.ID_USUARIO == id);

                if (domain == null)
                {
                    var newobj = new USUARIO(id, obj.NOME, new CPF(obj.CPF), new RG(obj.RgUF, obj.RgNR), obj.DT_NASCIMENTO);

                    newobj.AdicionarContato(new Telefone(obj.ContatoFIXO), new Telefone(obj.ContatoCELULAR), new Email(User.Identity.GetUserName()));
                    newobj.AdicionarEndereco(obj.EnderecoUF, obj.EnderecoCEP, obj.EnderecoLOGRADOURO, obj.EnderecoCOMPLEMENTO, obj.EnderecoBAIRRO, obj.EnderecoCIDADE);

                    ctx.Usuario.Add(newobj);
                }
                else
                {
                    domain.AtualizaDados(obj.NOME, new CPF(obj.CPF), new RG(obj.RgUF, obj.RgNR), obj.DT_NASCIMENTO);

                    domain.CONTATO.AtualizarValor(new Telefone(obj.ContatoFIXO), new Telefone(obj.ContatoCELULAR));
                    domain.ENDERECO.AtualizaValores(obj.EnderecoUF, obj.EnderecoCEP, obj.EnderecoLOGRADOURO, obj.EnderecoCOMPLEMENTO, obj.EnderecoBAIRRO, obj.EnderecoCIDADE);

                    ctx.Entry(domain).State          = EntityState.Modified;
                    ctx.Entry(domain.CONTATO).State  = EntityState.Modified;
                    ctx.Entry(domain.ENDERECO).State = EntityState.Modified;
                }

                await ctx.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.TratarMensagem());
            }
        }