@ -154,30 +154,27 @@ namespace MediaBrowser.Common.Implementations
/// Inits this instance.
/// Inits this instance.
/// </summary>
/// </summary>
/// <returns>Task.</returns>
/// <returns>Task.</returns>
public virtual Task Init ( )
public virtual async Task Init ( )
{
{
return Task . Run ( ( ) = >
IsFirstRun = ! ConfigurationManager . CommonConfiguration . IsStartupWizardCompleted ;
{
IsFirstRun = ! ConfigurationManager . CommonConfiguration . IsStartupWizardCompleted ;
Logger = LogManager . GetLogger ( "App" ) ;
DiscoverTypes ( ) ;
Logger = LogManager . GetLogger ( "App" ) ;
LogManager . ReloadLogger ( ConfigurationManager . CommonConfiguration . EnableDebugLevelLogging ? LogSeverity . Debug : LogSeverity . Info ) ;
DiscoverTypes ( ) ;
Logger . Info ( "Version {0} initializing" , ApplicationVersion ) ;
LogManager . ReloadLogger ( ConfigurationManager . CommonConfiguration . EnableDebugLevelLogging ? LogSeverity . Debug : LogSeverity . Info ) ;
Kernel = GetKernel ( ) ;
Logger . Info ( "Version {0} initializing" , ApplicationVersion ) ;
RegisterResources ( ) ;
Kernel = GetKernel ( ) ;
FindParts ( ) ;
await RegisterResources ( ) . ConfigureAwait ( false ) ;
Task . Run ( ( ) = > ConfigureAutoRunAtStartup ( ) ) ;
FindParts ( ) ;
Kernel . Init ( ) ;
Task . Run ( ( ) = > ConfigureAutoRunAtStartup ( ) ) ;
} ) ;
Kernel . Init ( ) ;
}
}
/// <summary>
/// <summary>
@ -224,44 +221,47 @@ namespace MediaBrowser.Common.Implementations
/// <summary>
/// <summary>
/// Registers resources that classes will depend on
/// Registers resources that classes will depend on
/// </summary>
/// </summary>
protected virtual void RegisterResources ( )
protected virtual Task RegisterResources ( )
{
{
RegisterSingleInstance ( ConfigurationManager ) ;
return Task . Run ( ( ) = >
RegisterSingleInstance < IApplicationHost > ( this ) ;
{
RegisterSingleInstance ( ConfigurationManager ) ;
RegisterSingleInstance < IApplicationHost > ( this ) ;
RegisterSingleInstance < IApplicationPaths > ( ApplicationPaths ) ;
RegisterSingleInstance < IApplicationPaths > ( ApplicationPaths ) ;
var networkManager = new NetworkManager ( ) ;
var networkManager = new NetworkManager ( ) ;
var serverManager = new ServerManager . ServerManager ( this , Kernel , networkManager , JsonSerializer , Logger , ConfigurationManager ) ;
var serverManager = new ServerManager . ServerManager ( this , Kernel , networkManager , JsonSerializer , Logger , ConfigurationManager ) ;
TaskManager = new TaskManager ( ApplicationPaths , JsonSerializer , Logger , serverManager ) ;
TaskManager = new TaskManager ( ApplicationPaths , JsonSerializer , Logger , serverManager ) ;
RegisterSingleInstance ( JsonSerializer ) ;
RegisterSingleInstance ( JsonSerializer ) ;
RegisterSingleInstance ( XmlSerializer ) ;
RegisterSingleInstance ( XmlSerializer ) ;
RegisterSingleInstance ( LogManager ) ;
RegisterSingleInstance ( LogManager ) ;
RegisterSingleInstance ( Logger ) ;
RegisterSingleInstance ( Logger ) ;
RegisterSingleInstance ( Kernel ) ;
RegisterSingleInstance ( Kernel ) ;
RegisterSingleInstance ( TaskManager ) ;
RegisterSingleInstance ( TaskManager ) ;
RegisterSingleInstance < IWebSocketServer > ( ( ) = > new AlchemyServer ( Logger ) ) ;
RegisterSingleInstance < IWebSocketServer > ( ( ) = > new AlchemyServer ( Logger ) ) ;
RegisterSingleInstance ( ProtobufSerializer ) ;
RegisterSingleInstance ( ProtobufSerializer ) ;
RegisterSingleInstance < IUdpServer > ( new UdpServer ( Logger ) , false ) ;
RegisterSingleInstance < IUdpServer > ( new UdpServer ( Logger ) , false ) ;
var httpClient = new HttpClientManager . HttpClientManager ( ApplicationPaths , Logger ) ;
var httpClient = new HttpClientManager . HttpClientManager ( ApplicationPaths , Logger ) ;
RegisterSingleInstance < IHttpClient > ( httpClient ) ;
RegisterSingleInstance < IHttpClient > ( httpClient ) ;
RegisterSingleInstance < INetworkManager > ( networkManager ) ;
RegisterSingleInstance < INetworkManager > ( networkManager ) ;
RegisterSingleInstance < IServerManager > ( serverManager ) ;
RegisterSingleInstance < IServerManager > ( serverManager ) ;
SecurityManager = new PluginSecurityManager ( Kernel , httpClient , JsonSerializer , ApplicationPaths ) ;
SecurityManager = new PluginSecurityManager ( Kernel , httpClient , JsonSerializer , ApplicationPaths ) ;
RegisterSingleInstance ( SecurityManager ) ;
RegisterSingleInstance ( SecurityManager ) ;
RegisterSingleInstance < IPackageManager > ( new PackageManager ( SecurityManager , networkManager , httpClient , ApplicationPaths , JsonSerializer , Logger ) ) ;
RegisterSingleInstance < IPackageManager > ( new PackageManager ( SecurityManager , networkManager , httpClient , ApplicationPaths , JsonSerializer , Logger ) ) ;
} ) ;
}
}
/// <summary>
/// <summary>