public override void ApplyChanges <T>(T model) { if (model is MemoryModel memory) { Assign1.ApplyChanges(memory.Assign1); Assign2.ApplyChanges(memory.Assign2); Assign3.ApplyChanges(memory.Assign3); Assign4.ApplyChanges(memory.Assign4); Assign5.ApplyChanges(memory.Assign5); Assign6.ApplyChanges(memory.Assign6); Assign7.ApplyChanges(memory.Assign7); Assign8.ApplyChanges(memory.Assign8); Assign9.ApplyChanges(memory.Assign9); Assign10.ApplyChanges(memory.Assign10); Assign11.ApplyChanges(memory.Assign11); Assign12.ApplyChanges(memory.Assign12); Assign13.ApplyChanges(memory.Assign13); Assign14.ApplyChanges(memory.Assign14); Assign15.ApplyChanges(memory.Assign15); Assign16.ApplyChanges(memory.Assign16); } else { throw new ArgumentException("Model must be of type MemoryModel."); } }