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(); }
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()); } }