public async Task <IActionResult> PutGrupoContactos([FromRoute] int id, [FromBody] GrupoContactos grupoContactos) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != grupoContactos.Id) { return(BadRequest()); } _context.Entry(grupoContactos).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GrupoContactosExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutGrupo([FromRoute] int id, [FromBody] GrupoCompleto grupo) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != grupo.Grupo.Id) { return(BadRequest()); } foreach (var contacto in grupo.Contactos) { var grct = _context.GruposContactos.FirstOrDefault(gr => gr.GrupoId == id && gr.ContactoId == contacto.Id); if (null == grct) { var gc = new GrupoContactos { GrupoId = grupo.Grupo.Id, ContactoId = contacto.Id }; _context.GruposContactos.Add(gc); } } var grcts = _context.GruposContactos.Where(gc => gc.GrupoId == id && grupo.Contactos.All(g => g.Id != gc.ContactoId)); foreach (var grct in grcts) { _context.GruposContactos.Remove(grct); } _context.Entry(grupo.Grupo).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GrupoExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }