private void AddPackageSource(PackageSource source, bool shouldSkipSave, ref bool isDirty) { if (source.IsPersistable) { Settings.AddOrUpdate(ConfigurationConstants.PackageSources, source.AsSourceItem()); isDirty = true; } if (source.IsEnabled) { RemoveDisabledSource(source.Name, shouldSkipSave: true, isDirty: ref isDirty); } else { AddDisabledSource(source.Name, shouldSkipSave: true, isDirty: ref isDirty); } if (source.Credentials != null && source.Credentials.IsValid()) { Settings.AddOrUpdate(ConfigurationConstants.CredentialsSectionName, source.Credentials.AsCredentialsItem()); isDirty = true; } if (!shouldSkipSave && isDirty) { Settings.SaveToDisk(); OnPackageSourcesChanged(); isDirty = false; } }
public void AsSourceItem_WorksCorrectly() { var source = new PackageSource("Source", "SourceName", isEnabled: false) { ProtocolVersion = 43 }; var expectedItem = new SourceItem("SourceName", "Source", "43"); source.AsSourceItem().DeepEquals(expectedItem).Should().BeTrue(); }
private void UpdatePackageSource( PackageSource newSource, PackageSource existingSource, AddItem existingDisabledSourceItem, CredentialsItem existingCredentialsItem, bool updateEnabled, bool updateCredentials, bool shouldSkipSave, ref bool isDirty) { if (string.Equals(newSource.Name, existingSource.Name, StringComparison.OrdinalIgnoreCase)) { if ((!string.Equals(newSource.Source, existingSource.Source, StringComparison.OrdinalIgnoreCase) || newSource.ProtocolVersion != existingSource.ProtocolVersion) && newSource.IsPersistable) { Settings.AddOrUpdate(ConfigurationConstants.PackageSources, newSource.AsSourceItem()); isDirty = true; } if (updateEnabled) { if (newSource.IsEnabled && existingDisabledSourceItem != null) { Settings.Remove(ConfigurationConstants.DisabledPackageSources, existingDisabledSourceItem); isDirty = true; } if (!newSource.IsEnabled && existingDisabledSourceItem == null) { AddDisabledSource(newSource.Name, shouldSkipSave: true, isDirty: ref isDirty); } } if (updateCredentials && newSource.Credentials != existingSource.Credentials) { if (existingCredentialsItem != null) { if (newSource.Credentials == null) { Settings.Remove(ConfigurationConstants.CredentialsSectionName, existingCredentialsItem); isDirty = true; } else { Settings.AddOrUpdate(ConfigurationConstants.CredentialsSectionName, newSource.Credentials.AsCredentialsItem()); isDirty = true; } } else if (newSource.Credentials != null && newSource.Credentials.IsValid()) { Settings.AddOrUpdate(ConfigurationConstants.CredentialsSectionName, newSource.Credentials.AsCredentialsItem()); isDirty = true; } } if (!shouldSkipSave && isDirty) { Settings.SaveToDisk(); OnPackageSourcesChanged(); isDirty = false; } } }