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); }
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); }
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); } }
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); } }