static void AddOrRemoveLayouts(ModulesDbContext dbContext, Meeting entity, Meeting existing) { foreach (var layout in entity.Layouts) { var existingGable = existing.Layouts.AsQueryable().FirstOrDefault(g => g.Id == layout.Id); if (existingGable is null) { existing.Layouts.Add(layout); } else { dbContext.Entry(existingGable).CurrentValues.SetValues(layout); } } foreach (var gable in existing.Layouts) { if (!entity.Layouts.Any(mg => mg.Id == gable.Id)) { dbContext.Remove(gable); } } }
static void AddOrRemoveExits(ModulesDbContext dbContext, Module entity, Module existing) { foreach (var exit in entity.ModuleExits) { var existingExit = existing.ModuleExits.AsQueryable().FirstOrDefault(g => g.Id == exit.Id); if (existingExit is null) { existing.ModuleExits.Add(exit); } else { dbContext.Entry(existingExit).CurrentValues.SetValues(exit); } } foreach (var exit in existing.ModuleExits) { if (!entity.ModuleExits.Any(mg => mg.Id == exit.Id)) { dbContext.Remove(exit); } } }