@ -3,6 +3,8 @@
@@ -3,6 +3,8 @@
using System ;
using System.Collections.Generic ;
using System.Collections.ObjectModel ;
using System.Collections.Specialized ;
using System.Linq ;
using ICSharpCode.Core ;
using ICSharpCode.SharpDevelop ;
@ -19,10 +21,15 @@ namespace ICSharpCode.AddInManager2.Model
@@ -19,10 +21,15 @@ namespace ICSharpCode.AddInManager2.Model
private IPackageRepository _ activeRepository ;
private PackageSource _ activeSource ;
private List < PackageSource > _ registeredPackageSources ;
private IAddInManagerEvents _ events ;
public PackageRepositories ( )
public PackageRepositories ( IAddInManagerEvents events )
{
_ events = events ;
_ registeredPackageSources = new List < PackageSource > ( ) ;
LoadPackageSources ( ) ;
UpdateCurrentRepository ( ) ;
UpdateActiveRepository ( ) ;
@ -68,6 +75,9 @@ namespace ICSharpCode.AddInManager2.Model
@@ -68,6 +75,9 @@ namespace ICSharpCode.AddInManager2.Model
_ registeredPackageSources . Clear ( ) ;
_ registeredPackageSources . AddRange ( value ) ;
SavePackageSources ( ) ;
// Send around the update
_ events . OnPackageSourcesChanged ( new EventArgs ( ) ) ;
}
}
@ -92,16 +102,19 @@ namespace ICSharpCode.AddInManager2.Model
@@ -92,16 +102,19 @@ namespace ICSharpCode.AddInManager2.Model
{
// If we don't have any repositories, so add the default one
PackageSource defaultPackageSource =
new PackageSource ( "https://nuget.org/api/v2" , ResourceService . GetString ( "AddInManager2.DefaultRepository" ) ) ;
new PackageSource ( "https://nuget.org/api/v2" , SD . ResourceService . GetString ( "AddInManager2.DefaultRepository" ) ) ;
_ registeredPackageSources . Add ( defaultPackageSource ) ;
SavePackageSources ( ) ;
}
// Send around the update
_ events . OnPackageSourcesChanged ( new EventArgs ( ) ) ;
}
private void SavePackageSources ( )
{
var savedRepositories = _ registeredPackageSources . Select ( ps = > ps . Name + "=" + ps . Source ) ;
PropertyService . Set < string [ ] > ( "AddInManager2.PackageRepositories" , savedRepositories . ToArray ( ) ) ;
SD . PropertyService . Set < string [ ] > ( "AddInManager2.PackageRepositories" , savedRepositories . ToArray ( ) ) ;
UpdateCurrentRepository ( ) ;
}
@ -113,11 +126,16 @@ namespace ICSharpCode.AddInManager2.Model
@@ -113,11 +126,16 @@ namespace ICSharpCode.AddInManager2.Model
{
_ currentRepository = new AggregateRepository ( repositories ) ;
}
else
{
// We have no repositories in configuration -> then we can't have an active source
ActiveSource = null ;
}
}
private void UpdateActiveRepository ( )
{
if ( ( _ activeSource = = null ) & & ( _ registeredPackageSources ! = null ) )
if ( ( _ activeSource = = null ) & & ( _ registeredPackageSources ! = null ) & & _ registeredPackageSources . Any ( ) )
{
_ activeSource = _ registeredPackageSources [ 0 ] ;
}