static ContainerBuilder RegisterApplication(IProgramOptions options) { var builder = new ContainerBuilder(); builder.RegisterInstance(options).As<IProgramOptions>(); var logConfig = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.ColoredConsole(); builder.RegisterModule<LogicIocModule>(); if (options.Interactive) { builder.RegisterModule(new ConsoleIocModule(logConfig)); builder.RegisterType<ConsoleApplication>().As<IApplication>().SingleInstance(); } else { builder.RegisterModule(new WebAppIocModule(logConfig)); builder.RegisterType<WebApplication>().As<IApplication>().SingleInstance(); } Log.Logger = logConfig.CreateLogger(); builder.RegisterInstance(Log.Logger).As<ILogger>(); return builder; }
static ContainerBuilder RegisterApplication(IProgramOptions options) { var builder = new ContainerBuilder(); builder.RegisterInstance(options).As <IProgramOptions>(); var logConfig = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.ColoredConsole(); builder.RegisterModule <LogicIocModule>(); if (options.Interactive) { builder.RegisterModule(new ConsoleIocModule(logConfig)); builder.RegisterType <ConsoleApplication>().As <IApplication>().SingleInstance(); } else { builder.RegisterModule(new WebAppIocModule(logConfig)); builder.RegisterType <WebApplication>().As <IApplication>().SingleInstance(); } Log.Logger = logConfig.CreateLogger(); builder.RegisterInstance(Log.Logger).As <ILogger>(); return(builder); }
private static IContainer BuildProgram(IProgramOptions programOptions) { var builder = new ContainerBuilder(); builder.RegisterInstance(programOptions.ImageOptions).As <IImageOptions>(); builder.RegisterInstance(programOptions.FontOptions).As <IFontOptions>(); builder.RegisterInstance(programOptions.FilterOptions).As <IFilterOptions>(); builder.RegisterType <WordsAnalyzer>().As <IWordsAnalyzer>(); builder.RegisterType <FileReader>().As <IWordReader>().WithParameter("filePath", programOptions.FilePath); builder.RegisterType <Filter>().As <IFilter>(); builder.RegisterType <CircularCloudLayouter>().As <ILayouter>() .WithParameter("center", new Point(programOptions.ImageOptions.Width / 2, programOptions.ImageOptions.Height / 2)); builder.RegisterType <LayoutDrawer>().As <ILayoutDrawer>(); builder.RegisterType <RectangleLayout>().As <IRectangleLayout>(); builder.RegisterType <TagCloud>().As <ITagCloud>(); return(builder.Build()); }
private static void StartMessageServer(IProgramOptions options) { messageServer = new MessageServer(options.Host, options.Port); messageServer.Start(); }