/// <summary>
 /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class.
 /// </summary>
 /// <param name="languageCode">Language code for the Qna service provider.</param>
 /// <param name="configurationProvider">ConfigurationProvider fetch and store information in storage table.</param>
 /// <param name="optionsAccessor">A set of key/value application configuration properties.</param>
 /// <param name="qnaMakerClient">Qna service client.</param>
 public QnaServiceProvider(string languageCode, IConfigurationDataProvider configurationProvider, IOptionsMonitor <QnAMakerSettings> optionsAccessor, IQnAMakerClient qnaMakerClient)
 {
     this.languageCode          = languageCode;
     this.configurationProvider = configurationProvider;
     this.qnaMakerClient        = qnaMakerClient;
     this.options = optionsAccessor.CurrentValue;
 }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PublishFunction"/> class.
 /// </summary>
 /// <param name="qnaServiceProviders">Language specific Question and answer maker service providers.</param>
 /// <param name="configurationProvider">Configuration service provider.</param>
 /// <param name="searchServiceDataProvider">Search service data provider.</param>
 /// <param name="knowledgeBaseSearchService">Knowledgebase search service.</param>
 public PublishFunction(IEnumerable <IQnaServiceProvider> qnaServiceProviders, IConfigurationDataProvider configurationProvider, ISearchServiceDataProvider searchServiceDataProvider, IKnowledgeBaseSearchService knowledgeBaseSearchService)
 {
     this.qnaServiceProviders        = qnaServiceProviders;
     this.configurationProvider      = configurationProvider;
     this.searchServiceDataProvider  = searchServiceDataProvider;
     this.knowledgeBaseSearchService = knowledgeBaseSearchService;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class.
 /// </summary>
 /// <param name="configurationProvider">ConfigurationProvider fetch and store information in storage table.</param>
 /// <param name="optionsAccessor">A set of key/value application configuration properties.</param>
 /// <param name="qnaMakerClient">Qna service client.</param>
 /// <param name="qnaMakerRuntimeClient">Qna service runtime client.</param>
 public QnaServiceProvider(IConfigurationDataProvider configurationProvider, IOptionsMonitor <QnAMakerSettings> optionsAccessor, IQnAMakerClient qnaMakerClient, IQnAMakerRuntimeClient qnaMakerRuntimeClient)
 {
     this.configurationProvider = configurationProvider;
     this.qnaMakerClient        = qnaMakerClient;
     this.options = optionsAccessor.CurrentValue;
     this.qnaMakerRuntimeClient = qnaMakerRuntimeClient;
 }
Example #4
0
        public SnakeObject(ICellFactory cellFactory, IGameEventFactory eventFactory, IConfigurationDataProvider dataProvider)
            : base(cellFactory, eventFactory)
        {
            _body   = new Queue <ICell>();
            _points = new Info("Points", 400, ConsoleColor.Magenta, 0, true);
            _info.Add(_points);
            _initialLifes           = int.Parse(dataProvider.Get("lifes"));
            Lifes                   = _initialLifes;
            _pointsToAdditionalLife = int.Parse(dataProvider.Get("pointsToAdditionalLife"));
            InitialLength           = int.Parse(dataProvider.Get("initialSnakeLength"));
            MaxLength               = int.Parse(dataProvider.Get("maxSnakeLength"));
            _timeToBomb             = int.Parse(dataProvider.Get("timeToBomb"));
            _bombRange              = int.Parse(dataProvider.Get("bombRange"));
            CurrentDirection        = Direction.Down;
            _stopwatch              = new Stopwatch();
            _stopwatch.Start();
            _bombCount = 0;

            _immortal = false;
            _immortalMoveStopwatch = new Stopwatch();
            _immortalMovePeriod    = int.Parse(dataProvider.Get("immortalMovePeriod"));

            _lifes = new Info("Lifes", 100, ConsoleColor.Green, Lifes, true);
            _info.Add(_lifes);
            _remainingFoods = new Info("Remaining foods", 500, ConsoleColor.Blue, MaxLength - Length, true);
            _info.Add(_remainingFoods);
            _timeToGetTimeBonus       = int.Parse(dataProvider.Get("timeGetTimeBonus"));
            _remainingTimeToTimeBonus = new Info("Time to get a timebonus", 700, ConsoleColor.Cyan, _timeToGetTimeBonus, false);
            _info.Add(_remainingTimeToTimeBonus);
            _timeToGetBomb = new Info("Time to get a bomb", 800, ConsoleColor.DarkMagenta, _timeToBomb, false);
            _info.Add(_timeToGetBomb);
            _bomb = new Info("Bombs", 900, ConsoleColor.DarkRed, _bombCount, true);
            _info.Add(_bomb);
        }
Example #5
0
 public BonusObject(ICellFactory cellFactory, IGameEventFactory eventFactory, IConfigurationDataProvider dataProvider)
     : base(cellFactory, eventFactory)
 {
     _random           = new Random();
     _stopwatch        = new Stopwatch();
     _remainingTime    = int.Parse(dataProvider.Get("remainingTime"));
     _bonusPossibility = int.Parse(dataProvider.Get("bonusPossibility"));
 }
Example #6
0
 public SnowGameContext(IConfigurationDataProvider dataProvider,
                        GroundObject ground,
                        SnowInTheAirObject snowInTheAir,
                        SnowOnTheGroundObject snowOnTheGround)
     : base(dataProvider, ground, snowInTheAir, snowOnTheGround)
 {
     Console.Title = "SNOW";
 }
Example #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QuestionController"/> class.
        /// </summary>
        /// <param name="configurationProvider"></param>
        /// <param name="qnaServiceProvider"></param>
        /// <param name="imageStorageProvider"></param>
        /// <param name="optionsAccessor"></param>
        public QuestionController(IConfigurationDataProvider configurationProvider, IQnaServiceProvider qnaServiceProvider, IImageStorageProvider imageStorageProvider, IOptionsMonitor <BotSettings> optionsAccessor)
        {
            this.configurationProvider = configurationProvider;
            this.qnaServiceProvider    = qnaServiceProvider;
            this.imageStorageProvider  = imageStorageProvider;

            this.options = optionsAccessor.CurrentValue;
            this.appId   = this.options.MicrosoftAppId;
        }
Example #8
0
 public SnakeGameContext
     (IConfigurationDataProvider dataProvider,
     WallObject wall,
     SnakeObject snake,
     FoodObject food,
     BonusObject bonus)
     : base(dataProvider, wall, snake, food, bonus)
 {
     Console.Title = "SNAKE";
 }
Example #9
0
 public FoodObject(ICellFactory cellFactory, IGameEventFactory eventFactory, IConfigurationDataProvider dataProvider)
     : base(cellFactory, eventFactory)
 {
     _random             = new Random();
     _stopwatch          = new Stopwatch();
     _timeFoodBeEaten    = int.Parse(dataProvider.Get("timeFoodBeEaten"));
     _remainingTimeToEat = new Info("Time to get a food", 600, ConsoleColor.DarkGreen, _timeFoodBeEaten, false);
     _info.Add(_remainingTimeToEat);
     _timeToBomb       = int.Parse(dataProvider.Get("timeToBomb"));
     _timeGetTimeBonus = int.Parse(dataProvider.Get("timeGetTimeBonus"));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TaskModuleActivity"/> class.
 /// </summary>
 /// <param name="configurationProvider">Configuration Provider.</param>
 /// <param name="qnaServiceProvider">QnA service provider.</param>
 /// <param name="logger">Instance to send logs to the Application Insights service.</param>
 /// <param name="qnaPairServiceFacade">Instance of QnA pair service class to call add/update/get QnA pair.</param>
 public TaskModuleActivity(
     Common.Providers.IConfigurationDataProvider configurationProvider,
     IQnaServiceProvider qnaServiceProvider,
     ILogger <TaskModuleActivity> logger,
     IQnAPairServiceFacade qnaPairServiceFacade)
 {
     this.configurationProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
     this.qnaServiceProvider    = qnaServiceProvider ?? throw new ArgumentNullException(nameof(qnaServiceProvider));
     this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
     this.qnaPairServiceFacade = qnaPairServiceFacade ?? throw new ArgumentNullException(nameof(qnaPairServiceFacade));
 }
Example #11
0
 public WallObject(ICellFactory cellFactory, IGameEventFactory eventFactory, IConfigurationDataProvider dataProvider)
     : base(cellFactory, eventFactory)
 {
     _random           = new Random();
     Level             = 1;
     MaxLevel          = int.Parse(dataProvider.Get("maxLevel"));
     WallSpreadDencity = int.Parse(dataProvider.Get("wallSpreadDencity"));
     MinWallLength     = int.Parse(dataProvider.Get("minWallLength"));
     MaxWallLength     = int.Parse(dataProvider.Get("maxWallLength"));
     _level            = new Info("Level", 200, ConsoleColor.DarkGray, Level, true);
     _info.Add(_level);
 }
Example #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FaqPlusPlusBot"/> class.
 /// </summary>
 /// <param name="configurationProvider">Configuration Provider.</param>
 /// <param name="microsoftAppCredentials">Microsoft app credentials to use.</param>
 /// <param name="ticketsProvider">Tickets Provider.</param>
 /// <param name="qnaServiceProvider">Question and answer maker service provider.</param>
 /// <param name="optionsAccessor">A set of key/value application configuration properties for FaqPlusPlus bot.</param>
 /// <param name="logger">Instance to send logs to the Application Insights service.</param>
 /// <param name="smeBot">Instance of SME bot to handle actions on old cards sent with old bot version.</param>
 public UserActivityHandler(
     IConfigurationDataProvider configurationProvider,
     MicrosoftAppCredentials microsoftAppCredentials,
     ITicketsProvider ticketsProvider,
     IQnaServiceProvider qnaServiceProvider,
     IOptionsMonitor <BotSettings> optionsAccessor,
     ILogger <UserActivityHandler> logger,
     SmeActivityHandler smeBot)
     : base(configurationProvider, microsoftAppCredentials, ticketsProvider, qnaServiceProvider, optionsAccessor.CurrentValue, logger)
 {
     this.smeBot = smeBot;
     this.expertTeamNameCache = new MemoryCacheWithPolicy <string>();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConversationService"/> class.
 /// </summary>
 /// <param name="configurationProvider">Configuration Provider.</param>
 /// <param name="logger">Instance to send logs to the Application Insights service.</param>
 /// <param name="qnaPairServiceFacade">Instance of QnA pair service class to call add/update/get QnA pair.</param>
 /// <param name="ticketsProvider">Instance of Ticket provider helps in fetching and storing information in storage table.</param>
 /// <param name="notificationService">Notifies in expert's Team chat.</param>
 public ConversationService(
     Common.Providers.IConfigurationDataProvider configurationProvider,
     IQnAPairServiceFacade qnaPairServiceFacade,
     ITicketsProvider ticketsProvider,
     INotificationService notificationService,
     ILogger <ConversationService> logger)
 {
     this.configurationProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
     this.ticketsProvider       = ticketsProvider ?? throw new ArgumentNullException(nameof(ticketsProvider));
     this.notificationService   = notificationService ?? throw new ArgumentNullException(nameof(notificationService));
     this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
     this.qnaPairServiceFacade = qnaPairServiceFacade ?? throw new ArgumentNullException(nameof(qnaPairServiceFacade));
 }
Example #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TicketsController"/> class.
 /// </summary>
 /// <param name="telemetryClient">Singleton TelemetryClient instance used to send telemetry to Azure application insights.</param>
 /// <param name="ticketsProvider">Tickets provider</param>
 /// <param name="configurationProvider">Configuration Data provider</param>
 /// <param name="httpContextAccessor">http context</param>
 /// <param name="adapter">Bot adapter</param>
 /// <param name="configuration">Configuration</param>
 public TicketsController(
     TelemetryClient telemetryClient,
     ITicketsProvider ticketsProvider,
     IConfigurationDataProvider configurationProvider,
     IHttpContextAccessor httpContextAccessor,
     IBotFrameworkHttpAdapter adapter,
     IConfiguration configuration)
 {
     this.telemetryClient       = telemetryClient;
     this.ticketsProvider       = ticketsProvider;
     this.httpContextAccessor   = httpContextAccessor;
     this.adapter               = adapter;
     this.configuration         = configuration;
     this.configurationProvider = configurationProvider;
 }
Example #15
0
 public GameContext(IConfigurationDataProvider dataProvider, params IGameObject[] gameObjects)
 {
     Width     = int.Parse(dataProvider.Get("width"));
     Height    = int.Parse(dataProvider.Get("height"));
     PlayWidth = int.Parse(dataProvider.Get("playWidth"));
     InfoWidth = Width - PlayWidth;
     Points    = 0;
     InitializeGameField();
     _gameObjects = new List <IGameObject>(gameObjects);
     Used         = new HashSet <ICell>();
     RecycleBin   = new HashSet <ICell>();
     _infoObjects = new SortedSet <IInfo>();
     RegisterAllInfos(gameObjects);
     Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
     Console.OutputEncoding = Encoding.Unicode; //Encoding.GetEncoding(1252);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CommonTeamsActivityHandler"/> class.
 /// </summary>
 /// <param name="configurationProvider">Configuration Provider.</param>
 /// <param name="microsoftAppCredentials">Microsoft app credentials to use.</param>
 /// <param name="ticketsProvider">Tickets Provider.</param>
 /// <param name="qnaServiceProvider">Question and answer maker service provider.</param>
 /// <param name="options">A set of key/value application configuration properties for FaqPlusPlus bot.</param>
 /// <param name="logger">Instance to send logs to the Application Insights service.</param>
 public CommonTeamsActivityHandler(
     IConfigurationDataProvider configurationProvider,
     MicrosoftAppCredentials microsoftAppCredentials,
     ITicketsProvider ticketsProvider,
     IQnaServiceProvider qnaServiceProvider,
     BotSettings options,
     ILogger logger)
 {
     this.logger  = logger;
     this.options = options;
     this.configurationProvider   = configurationProvider;
     this.microsoftAppCredentials = microsoftAppCredentials;
     this.ticketsProvider         = ticketsProvider;
     this.qnaServiceProvider      = qnaServiceProvider;
     this.appBaseUri = this.options.AppBaseUri;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="QnAPairServiceFacade"/> class.
        /// </summary>
        /// <param name="configurationProvider">Configuration Provider.</param>
        /// <param name="activityStorageProvider">Activity storage provider.</param>
        /// <param name="qnaServiceProvider">QnA service provider.</param>
        /// <param name="botSettings">Represents a set of key/value application configuration properties for FaqPlusPlus bot.</param>ram>
        /// <param name="logger">Instance to send logs to the Application Insights service.</param>
        public QnAPairServiceFacade(
            Common.Providers.IConfigurationDataProvider configurationProvider,
            IQnaServiceProvider qnaServiceProvider,
            IActivityStorageProvider activityStorageProvider,
            IOptionsMonitor<BotSettings> botSettings,
            ILogger<QnAPairServiceFacade> logger)
        {
            this.configurationProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            this.qnaServiceProvider = qnaServiceProvider ?? throw new ArgumentNullException(nameof(qnaServiceProvider));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
            this.activityStorageProvider = activityStorageProvider ?? throw new ArgumentNullException(nameof(activityStorageProvider));
            if (botSettings == null)
            {
                throw new ArgumentNullException(nameof(botSettings));
            }

            this.options = botSettings.CurrentValue;
            this.appBaseUri = this.options.AppBaseUri;
        }
        public PersonalChatMainDialog(ChangeLanguageDialog changeLangDialog,
                                      UserState userState,
                                      IQnaServiceProvider qnaServiceProvider,
                                      IOptionsMonitor <BotSettings> optionsAccessor,
                                      TelemetryClient telemetryClient,
                                      IConfigurationDataProvider configurationProvider)
            : base("root")
        {
            _telemetryClient       = telemetryClient;
            _configurationProvider = configurationProvider;
            _changeLangDialog      = changeLangDialog;
            _qnaServiceProvider    = qnaServiceProvider;
            _options    = optionsAccessor.CurrentValue;
            _appBaseUri = _options.AppBaseUri;

            AddDialog(changeLangDialog);
            AddDialog(new WaterfallDialog("personalRoot", new WaterfallStep[] { StartDialogAsync }));
            InitialDialogId = "personalRoot";
        }
Example #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MessagingExtensionActivity"/> class.
        /// </summary>
        /// <param name="configurationProvider">Configuration Provider.</param>
        /// <param name="activityStorageProvider">Activity storage provider.</param>
        /// <param name="qnaServiceProvider">Question and answer maker service provider.</param>
        /// <param name="searchService">SearchService dependency injection.</param>
        /// <param name="botAdapter">Bot adapter dependency injection.</param>
        /// <param name="memoryCache">IMemoryCache dependency injection.</param>
        /// <param name="knowledgeBaseSearchService">KnowledgeBaseSearchService dependency injection.</param>
        /// <param name="optionsAccessor">A set of key/value application configuration properties for FaqPlusPlus bot.</param>
        /// <param name="logger">Instance to send logs to the Application Insights service.</param>
        /// <param name="ticketsProvider">Instance of Ticket provider helps in fetching and storing information in storage table.</param>
        /// <param name="notificationService">Notifies in expert's Team chat.</param>
        public MessagingExtensionActivity(
            Common.Providers.IConfigurationDataProvider configurationProvider,
            IQnaServiceProvider qnaServiceProvider,
            IActivityStorageProvider activityStorageProvider,
            ISearchService searchService,
            BotFrameworkAdapter botAdapter,
            IMemoryCache memoryCache,
            IKnowledgeBaseSearchService knowledgeBaseSearchService,
            IOptionsMonitor <BotSettings> optionsAccessor,
            ILogger <MessagingExtensionActivity> logger,
            ITicketsProvider ticketsProvider,
            INotificationService notificationService)
        {
            this.configurationProvider   = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            this.qnaServiceProvider      = qnaServiceProvider ?? throw new ArgumentNullException(nameof(qnaServiceProvider));
            this.activityStorageProvider = activityStorageProvider ?? throw new ArgumentNullException(nameof(activityStorageProvider));
            this.searchService           = searchService ?? throw new ArgumentNullException(nameof(searchService));
            this.botAdapter  = botAdapter ?? throw new ArgumentNullException(nameof(botAdapter));
            this.accessCache = memoryCache ?? throw new ArgumentNullException(nameof(memoryCache));
            this.logger      = logger ?? throw new ArgumentNullException(nameof(logger));
            this.knowledgeBaseSearchService = knowledgeBaseSearchService ?? throw new ArgumentNullException(nameof(knowledgeBaseSearchService));
            this.ticketsProvider            = ticketsProvider ?? throw new ArgumentNullException(nameof(ticketsProvider));
            this.notificationService        = notificationService ?? throw new ArgumentNullException(nameof(notificationService));
            if (optionsAccessor == null)
            {
                throw new ArgumentNullException(nameof(optionsAccessor));
            }

            this.options    = optionsAccessor.CurrentValue;
            this.appId      = this.options.ExpertAppId;
            this.appBaseUri = this.options.AppBaseUri;
            this.accessCacheExpiryInDays = this.options.AccessCacheExpiryInDays;
            if (this.accessCacheExpiryInDays <= 0)
            {
                this.accessCacheExpiryInDays = DefaultAccessCacheExpiryInDays;
                this.logger.LogInformation($"Configuration option is not present or out of range for AccessCacheExpiryInDays and the default value is set to: {this.accessCacheExpiryInDays}", SeverityLevel.Information);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="BotCommandResolver"/> class.
        /// </summary>
        /// <param name="configurationProvider">Configuration Provider.</param>
        /// <param name="activityStorageProvider">Activity storage provider.</param>
        /// <param name="qnaServiceProvider">QnA service provider.</param>
        /// <param name="logger">Instance to send logs to the Application Insights service.</param>
        /// <param name="qnaPairService">Instance of QnA pair service class to call add/update/get QnA pair.</param>
        /// <param name="botSettings">Represents a set of key/value application configuration properties for FaqPlusPlus bot.</param>
        /// <param name="conversationService">Conversation service to send adaptive card in personal and teams chat.</param>
        public BotCommandResolver(
            Common.Providers.IConfigurationDataProvider configurationProvider,
            IQnaServiceProvider qnaServiceProvider,
            IActivityStorageProvider activityStorageProvider,
            IQnAPairServiceFacade qnaPairService,
            IOptionsMonitor <BotSettings> botSettings,
            ILogger <BotCommandResolver> logger,
            IConversationService conversationService)
        {
            this.configurationProvider   = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            this.qnaServiceProvider      = qnaServiceProvider ?? throw new ArgumentNullException(nameof(qnaServiceProvider));
            this.activityStorageProvider = activityStorageProvider ?? throw new ArgumentNullException(nameof(activityStorageProvider));
            this.logger              = logger ?? throw new ArgumentNullException(nameof(logger));
            this.qnaPairService      = qnaPairService ?? throw new ArgumentNullException(nameof(qnaPairService));
            this.conversationService = conversationService ?? throw new ArgumentNullException(nameof(conversationService));
            if (botSettings == null)
            {
                throw new ArgumentNullException(nameof(botSettings));
            }

            var options = botSettings.CurrentValue;

            this.appBaseUri = options.AppBaseUri;
        }
        protected virtual void OnInitialization()
        {
            applicationDescription      = CreateApplicationDescription();
            LogManager.Configuration    = CreateLoggingConfigurationBuilder().CreateConfiguration(applicationDescription);
            environmentProvider         = CreateEnvironmentProvider();
            configurationDataProvider   = CreateConfigurationProvider(applicationDescription);

            log.Info("Starting cli application: {0}",applicationDescription.Name);

            var assemblies = FilterAssemblies(applicationDescription.Assemblies);

            log.Info("Building application container");

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterInstance(environmentProvider).As<IEnvironmentProvider>();
            containerBuilder.RegisterInstance(configurationDataProvider).As<IConfigurationDataProvider>();
            containerBuilder.RegisterInstance(applicationDescription).As<IApplicationDescription>();
            containerBuilder.RegisterSource(new ConfigurationRegistrationSource(configurationDataProvider,environmentProvider.GetEnvironmentSequence()));

            containerBuilder.RegisterAutofacModules(assemblies);
            containerBuilder.RegisterDependencyModules(assemblies);

            applicationLifetimeScope = containerBuilder.Build();

            log.Info("Application container built successfully");

            // Execute boottasks
            foreach( var bootTask in applicationLifetimeScope.Resolve<IEnumerable<IBootTask>>().OrderByDependencies())
            {
                log.Info("Executing boottask: {0}",bootTask.GetType().Name.Replace("Boot",string.Empty).Replace("Task",string.Empty));
                bootTask.Boot();
            }

            log.Info("Cli application initialization complete");
        }
Example #22
0
        private void OneTimeInitialization()
        {
            applicationDescription      = CreateApplicationDescription();
            LogManager.Configuration    = CreateLoggingConfigurationBuilder().CreateConfiguration(applicationDescription);
            environmentProvider         = CreateEnvironmentProvider();
            configurationDataProvider   = CreateConfigurationProvider(applicationDescription);

            log.Info("Starting web application: {0}",applicationDescription.Name);

            var assemblies = FilterAssemblies(applicationDescription.Assemblies);

            log.Info("Building application container");

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterInstance(environmentProvider).As<IEnvironmentProvider>();
            containerBuilder.RegisterInstance(configurationDataProvider).As<IConfigurationDataProvider>();
            containerBuilder.RegisterInstance(applicationDescription).As<IApplicationDescription>();
            containerBuilder.RegisterInstance(GlobalConfiguration.Configuration).As<HttpConfiguration>();
            containerBuilder.RegisterSource(new ConfigurationRegistrationSource(configurationDataProvider,environmentProvider.GetEnvironmentSequence()));

            containerBuilder.RegisterAutofacModules(assemblies);
            containerBuilder.RegisterDependencyModules(assemblies);

            applicationLifetimeScope = containerBuilder.Build();

            log.Info("Application container built successfully");

            DependencyResolver.SetResolver(new AutofacDependencyResolver(applicationLifetimeScope));
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(applicationLifetimeScope);

            // Documentation provider:
            var documentationFilename = Server.MapPath("~/bin/" + GetType().BaseType.Assembly.GetName().Name + ".xml");
            if (File.Exists(documentationFilename))
            {
                GlobalConfiguration.Configuration.SetDocumentationProvider(
                    new XmlDocumentationProvider(documentationFilename));
            }
            else
            {
                log.Warn("Could not find documentation file: {0}",documentationFilename);
            }

            // Register areas
            foreach( var areaRegistration in applicationLifetimeScope.Resolve<IEnumerable<AreaRegistration>>().OrderByDependencies())
            {
                log.Info("Registering area: {0}",areaRegistration.AreaName);

                var areaRegistrationContext = new AreaRegistrationContext(areaRegistration.AreaName, RouteTable.Routes);
                areaRegistration.RegisterArea(areaRegistrationContext);
            }

            // Register routes
            foreach (var routeModule in applicationLifetimeScope.Resolve<IEnumerable<IRouteRegistrar>>().OrderByDependencies())
            {
                log.Info("Registering routes from registrar: {0}", routeModule.GetType().Name.Replace("Route", string.Empty).Replace("Registrar", string.Empty));
                routeModule.RegisterRoutes(RouteTable.Routes);
            }

            // Execute boottasks
            foreach( var bootTask in applicationLifetimeScope.Resolve<IEnumerable<IBootTask>>().OrderByDependencies())
            {
                log.Info("Executing boottask: {0}",bootTask.GetType().Name.Replace("Boot",string.Empty).Replace("Task",string.Empty));
                bootTask.Boot();
            }

            log.Info("Web application initialization complete");
        }
Example #23
0
 public OutputCsvFileWrapper(IConfigurationDataProvider configurationDataProvider)
 {
     _configurationDataProvider = configurationDataProvider;
 }
Example #24
0
 public Config()
 {
     _configurationDataProvider = new ConfigurationDataProvider();
     Initialize();
 }
Example #25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HomeController"/> class.
 /// </summary>
 /// <param name="configurationPovider">configurationPovider dependency injection.</param>
 /// <param name="qnaMakerClient">qnaMakerClient dependency injection.</param>
 public HomeController(IConfigurationDataProvider configurationPovider, IQnAMakerClient qnaMakerClient)
 {
     this.configurationPovider = configurationPovider;
     this.qnaMakerClient       = qnaMakerClient;
 }
Example #26
0
 public InputXmlFileWrapper(IConfigurationDataProvider configurationDataProvider)
 {
     _configurationDataProvider = configurationDataProvider;
 }
 public ConfigurationDataProviderShould()
 {
     _configurationDataProvider = new ConfigurationDataProvider();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HomeController"/> class.
 /// </summary>
 /// <param name="configurationPovider">configurationPovider dependency injection.</param>
 /// <param name="qnaServiceProviders">qnaServiceProviders dependency injection.</param>
 public HomeController(IConfigurationDataProvider configurationPovider, IEnumerable <IQnaServiceProvider> qnaServiceProviders)
 {
     this.configurationProvider = configurationPovider;
     this.qnaServiceProviders   = qnaServiceProviders;
 }
        public void Setup()
        {
            var nhcfg = Global.FluentNHConfig("test.db").BuildConfiguration();

            cfg = new NHConfigDataProvider(nhcfg);
        }
Example #30
0
 public ConfigDatabase(IConfigurationDataProvider configurationDataProvider)
 {
     this._configurationDataProvider = configurationDataProvider;
 }
 public void Setup()
 {
     var nhcfg = Global.FluentNHConfig("test.db").BuildConfiguration();
     cfg = new NHConfigDataProvider(nhcfg);
 }
Example #32
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HelpController"/> class.
 /// </summary>
 /// <param name="configurationProvider">Configuration provider dependency injection.</param>
 /// <param name="optionsAccessor">A set of key/value application configuration properties for FaqPlusPlus bot.</param>
 public HelpController(IConfigurationDataProvider configurationProvider, IOptionsMonitor <BotSettings> optionsAccessor)
 {
     this.configurationProvider = configurationProvider;
     this.options = optionsAccessor.CurrentValue;
 }
Example #33
0
 public HQLCodeAssist(IConfigurationDataProvider configuration)
 {
     this.configuration = configuration;
     completion = new ConfigurationCompletion(configuration);
 }
 public InputXmlFileWrapperShould()
 {
     _configurationDataProvider = Substitute.For <IConfigurationDataProvider>();
     _inputXmlFileWrapperShould = new InputXmlFileWrapper(_configurationDataProvider);
 }
 public ConfigurationRegistrationSource(IConfigurationDataProvider configurationProvider,IEnumerable<string> environments)
 {
     this.configurationProvider  = configurationProvider;
     this.environments           = environments;
 }