Пример #1
0
        public LocalConfigSource(RouteFactory routeFactory, IDictionary <string, string> routes, StoreAndForwardConfiguration storeAndForwardConfiguration)
        {
            Preconditions.CheckNotNull(routeFactory, nameof(routeFactory));
            Preconditions.CheckNotNull(routes, nameof(routes));
            Preconditions.CheckNotNull(storeAndForwardConfiguration, nameof(storeAndForwardConfiguration));
            IEnumerable <(string Name, string Value, Route Route)> parsedRoutes = routes.Select(r => (r.Key, r.Value, routeFactory.Create(r.Value)));

            this.edgeHubConfig = new EdgeHubConfig(Core.Constants.ConfigSchemaVersion.ToString(), parsedRoutes, storeAndForwardConfiguration);
        }
Пример #2
0
        public LocalConfigSource(RouteFactory routeFactory, IDictionary <string, string> routes, StoreAndForwardConfiguration storeAndForwardConfiguration)
        {
            Preconditions.CheckNotNull(routeFactory, nameof(routeFactory));
            Preconditions.CheckNotNull(routes, nameof(routes));
            Preconditions.CheckNotNull(storeAndForwardConfiguration, nameof(storeAndForwardConfiguration));
            IDictionary <string, RouteConfig> parsedRoutes = routes.ToDictionary(r => r.Key, r => new RouteConfig(r.Key, r.Value, routeFactory.Create(r.Value)));

            this.edgeHubConfig = new EdgeHubConfig(Constants.ConfigSchemaVersion.ToString(), new ReadOnlyDictionary <string, RouteConfig>(parsedRoutes), storeAndForwardConfiguration);
        }
Пример #3
0
 async Task HandleUpdateConfig(EdgeHubConfig edgeHubConfig)
 {
     Preconditions.CheckNotNull(edgeHubConfig, nameof(edgeHubConfig));
     Events.UpdatingConfig();
     try
     {
         await this.UpdateConfig(Option.Some(edgeHubConfig));
     }
     catch (Exception ex)
     {
         Events.UpdateError(ex);
     }
 }
Пример #4
0
        async Task UpdateConfig(EdgeHubConfig edgeHubConfig)
        {
            Preconditions.CheckNotNull(edgeHubConfig, nameof(edgeHubConfig));
            Events.UpdatingConfig();
            try
            {
                using (await this.updateLock.LockAsync())
                {
                    await this.UpdateRoutes(edgeHubConfig.Routes, true);

                    this.UpdateStoreAndForwardConfig(edgeHubConfig.StoreAndForwardConfiguration);
                }
            }
            catch (Exception ex)
            {
                Events.UpdateError(ex);
            }
        }