partial void CopyExtraPropertiesToClone(ExternalSystem clone, bool includeLocalProperties);
public ExternalSystem Clone(bool includeLocalProperties) { var c = new ExternalSystem { Configuration = Configuration, ConfigurationComplete = ConfigurationComplete, ConnectionString = ConnectionString, ConnectionType = ConnectionType, Enabled = Enabled, FieldValues = FieldValues, HasPassword = HasPassword, Id = Id, Name = Name, NumberOfLinks = NumberOfLinks, OrganisationId = OrganisationId, QualifiedName = QualifiedName, Type = Type, TypeDescription = TypeDescription, UserName = UserName, AdditionalConfigurationLinks = AdditionalConfigurationLinks.Select(x=>x.Clone(includeLocalProperties)).ToList(), Categories = Categories.ToList(), ConfigurationProblems = ConfigurationProblems.ToList(), ExternalSystemLinks = ExternalSystemLinks.Select(x=>x.Clone(includeLocalProperties)).ToList(), Widgets = Widgets.ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }