public async Task <IActionResult> PutMorador([FromRoute] int id, [FromBody] Morador morador) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != morador.MoradorId) { return(BadRequest()); } var oldMorador = await _context.Moradores.Include(x => x.Apartamento).FirstOrDefaultAsync(mrd => mrd.Apartamento.ApartamentoId == morador.Apartamento.ApartamentoId && mrd.CPF.Equals(morador.CPF) && mrd.DataNascimento.Date.Equals(morador.DataNascimento.Date)); if (oldMorador != null) { return(NotFound(new { Message = "Não foi possível atualizar o Morador pois o CPF, Data de Nascimento e Apartamento informados já se encontram cadastrado para outro Morador.", Error = true })); } var entityApto = await _context.Apartamentos.FindAsync(morador.Apartamento.ApartamentoId); _context.Entry(entityApto).State = EntityState.Detached; var entityMrd = await _context.Moradores.FindAsync(id); _context.Entry(entityMrd).State = EntityState.Detached; _context.Entry(morador).State = EntityState.Modified; _context.Entry(morador.Apartamento).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MoradorExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private async Task ForceAddInContext(KiperContext Context) { Apartamento apartamento = new Apartamento { Bloco = "A", Numero = 100 }; Morador morador = new Morador { Apartamento = apartamento, CPF = "98998998989", DataNascimento = DateTime.Now.AddDays(-100), EMail = "*****@*****.**", Nome = "Kiper", Telefone = "(33) 3344-4578" }; if (Context.Moradores.FirstOrDefault(x => x.CPF.Equals(morador.CPF) && x.EMail.Equals(morador.EMail)) != null) { return; } await Context.Moradores.AddAsync(morador); await Context.SaveChangesAsync(); }
public async Task <IActionResult> PutApartamento([FromRoute] int id, [FromBody] Apartamento apartamento) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != apartamento.ApartamentoId) { return(BadRequest()); } //Verifica se os dados do apartamento atualizado já não se encontra na base. var oldApto = _context.Apartamentos.FirstOrDefault(apto => apto.Bloco.Trim().Equals(apartamento.Bloco.Trim()) && apto.Numero == apartamento.Numero); if (oldApto != null) { return(NotFound(new { Message = "Não foi possível atualizar o Apartamento pois o Bloco e Número informados já se encontram cadastrado.", Error = true })); } var entity = await _context.Apartamentos.FindAsync(id); _context.Entry(entity).State = EntityState.Detached; _context.Entry(apartamento).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ApartamentoExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private async Task ForceAddInContext(KiperContext Context) { Login login = new Login { User = "******", Pass = "******" }; await Context.Logins.AddAsync(login); await Context.SaveChangesAsync(); }
private async Task ForceAddInContext(KiperContext Context) { Apartamento apartamento = new Apartamento { Bloco = "D", Numero = 100 }; if (Context.Apartamentos.FirstOrDefault(x => x.Bloco.Equals(apartamento.Bloco) && x.Numero == apartamento.Numero) != null) { return; } await Context.Apartamentos.AddAsync(apartamento); await Context.SaveChangesAsync(); }
public async Task Morador_PostWithDuplicateMorador() { KiperContext Context = GetContext(); _MoradoresControleer = new MoradoresController(Context); await ForceAddInContext(Context); Apartamento apartamento = new Apartamento { Bloco = "C", Numero = 255 }; await Context.Apartamentos.AddAsync(apartamento); Morador morador = new Morador { Apartamento = apartamento, CPF = "472034729323", DataNascimento = DateTime.Now.AddDays(-100), EMail = "*****@*****.**", Nome = "Kiper", Telefone = "(33) 3344-4578" }; await Context.Moradores.AddAsync(morador); await Context.SaveChangesAsync(); var result = await _MoradoresControleer.PostMorador(morador) as NotFoundObjectResult; var jsonSerialize = JsonConvert.SerializeObject(result.Value); var jsonResult = JsonConvert.DeserializeObject <CallStatus>(jsonSerialize); Assert.Equal(404, result.StatusCode); Assert.Equal("Erro ao tentar incluir o Morador Kiper. Já existe um morador com mesma Data de Nascimento e CPF.".ToUpper(), jsonResult.Message.ToUpper()); Assert.True(jsonResult.Error); }