using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using NLog; using Ninject; using NzbDrone.Model; using NzbDrone.Providers; namespace NzbDrone { public static class CentralDispatch { private static StandardKernel _kernel; private static readonly Logger Logger = LogManager.GetLogger("Host.CentralDispatch"); static CentralDispatch() { _kernel = new StandardKernel(); BindKernel(); InitilizeApp(); } public static ApplicationMode ApplicationMode { get; set; } public static StandardKernel Kernel { get { return _kernel; } } private static void BindKernel() { _kernel = new StandardKernel(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); _kernel.Bind().ToSelf().InSingletonScope(); } private static void InitilizeApp() { _kernel.Get().ConfigureNlog(); _kernel.Get().CreateDefaultConfigFile(); Logger.Info("Starting NZBDrone. Start-up Path:'{0}'", _kernel.Get().ApplicationPath); Thread.CurrentThread.Name = "Host"; } } }