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;
 }