11// Copyright (c) .NET Foundation. All rights reserved.
2- // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
2+ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3+
34using System ;
5+ using System . Collections . Specialized ;
6+ using System . Web . Configuration ;
47using NuGet . Server . Core . Infrastructure ;
58using NuGet . Server . Core . Logging ;
69using NuGet . Server . Infrastructure ;
710
811namespace NuGet . Server
912{
10- public class DefaultServiceResolver
11- : IServiceResolver
13+ public sealed class DefaultServiceResolver
14+ : IServiceResolver , IDisposable
1215 {
13- private readonly IHashProvider _hashProvider ;
14- private readonly IServerPackageRepository _packageRepository ;
15- private readonly IPackageAuthenticationService _packageAuthenticationService ;
16- private readonly ISettingsProvider _settingsProvider ;
16+ private readonly CryptoHashProvider _hashProvider ;
17+ private readonly ServerPackageRepository _packageRepository ;
18+ private readonly PackageAuthenticationService _packageAuthenticationService ;
19+ private readonly WebConfigSettingsProvider _settingsProvider ;
20+
21+ public DefaultServiceResolver ( ) : this (
22+ PackageUtility . PackagePhysicalPath ,
23+ WebConfigurationManager . AppSettings )
24+ {
25+ }
1726
18- public DefaultServiceResolver ( )
27+ public DefaultServiceResolver ( string packagePath , NameValueCollection settings )
1928 {
2029 _hashProvider = new CryptoHashProvider ( Core . Constants . HashAlgorithm ) ;
2130
22- _settingsProvider = new WebConfigSettingsProvider ( ) ;
31+ _settingsProvider = new WebConfigSettingsProvider ( settings ) ;
2332
24- _packageRepository = new ServerPackageRepository ( PackageUtility . PackagePhysicalPath , _hashProvider , _settingsProvider , new TraceLogger ( ) ) ;
33+ _packageRepository = new ServerPackageRepository ( packagePath , _hashProvider , _settingsProvider , new TraceLogger ( ) ) ;
2534
26- _packageAuthenticationService = new PackageAuthenticationService ( ) ;
35+ _packageAuthenticationService = new PackageAuthenticationService ( settings ) ;
2736
2837 }
2938
@@ -44,8 +53,12 @@ public object Resolve(Type type)
4453 return _packageAuthenticationService ;
4554 }
4655
47-
4856 return null ;
4957 }
58+
59+ public void Dispose ( )
60+ {
61+ _packageRepository . Dispose ( ) ;
62+ }
5063 }
5164}
0 commit comments