public void Put(int id, [FromBody] MiriotConfiguration config) { var existing = _context.Configurations .Include(u => u.Widgets) .Single(c => c.Id == config.Id); existing.Widgets.Clear(); _context.SaveChanges(); existing.Widgets.AddRange(config.Widgets); _context.Entry(existing).State = Microsoft.EntityFrameworkCore.EntityState.Modified; _context.Entry(existing).CurrentValues.SetValues(config); _context.SaveChanges(); }
public void Put(int id, [FromBody] User user) { var existingUser = _context.Users.AsNoTracking() .FirstOrDefault(u => u.Id == user.Id); if (existingUser == null) { _context.Users.Add(user); } else { //foreach (var d in user.Devices) //{ // d.UserId = user.Id; // _context.Configurations.Update(d); // foreach (var w in d.Widgets) // { // _context.Widgets.Update(w); // } //} //existingUser.Devices = user.Devices; //foreach(var d in user.Devices) //{ // var config = _context.Configurations.Find(d.Id); // if(config != null) // { // config.Widgets = d.Widgets; // _context.Configurations.Update(config); // } //} //existingUser.ToothbrushingHistory = user.ToothbrushingHistory; //_context.Users.Update(existingUser); //_context.Update(user); //existingUser.Devices = user.Devices; //existingUser.ToothbrushingHistory = user.ToothbrushingHistory; _context.Entry(existingUser).State = Microsoft.EntityFrameworkCore.EntityState.Modified; _context.Entry(existingUser).CurrentValues.SetValues(user); //_context.Users.Update(existingUser); } _context.SaveChanges(); }