public SettingTableEntity(SettingId settingId, string value) { PartitionKey = settingId.Category; RowKey = settingId.Config; Value = value; }
public void SettingOperationsTest() { var settingOperations = Substitute.For <IPersistedSettingOperations>(); var cachingSettingOperations = new SettingOperations(settingOperations); cachingSettingOperations.Remove("cat.conf"); var id = new SettingId("cat", "conf"); settingOperations.Get(id).Returns(TestDataCreator.Setting(id, "2")); var setting = cachingSettingOperations.Get(id); Assert.AreEqual("2", setting.Value); settingOperations.Received().Get(id); settingOperations.ClearReceivedCalls(); var setting2 = cachingSettingOperations.Get(id); Assert.AreEqual("2", setting2.Value); settingOperations.DidNotReceive().Get(id); }
public void ResolveConnectringStringByNameTest() { if (!IsIntegrationTest()) { return; } var settingOperation = Substitute.For <Thriot.Objects.Model.Operations.ISettingOperations>(); var dynamicConnectionStringResolver = new DynamicConnectionStringResolver(settingOperation); var telemetryEnvrionment = EnvironmentFactoryFactory.Create().TelemetryEnvironment; settingOperation.Get(null).ReturnsForAnyArgs(new Setting(SettingId.GetConnection("ResolvableConnectionString"), telemetryEnvrionment.ConnectionString)); var settingsDictionary = GetTimeSeriesSettings(); settingsDictionary.Remove(telemetryEnvrionment.ConnectionStringParamName); settingsDictionary[telemetryEnvrionment.ConnectionStringNameName] = "ResolvableConnectionString"; var telemetryDataSinkTimeSeries = GetTelemetryDataSinkTimeSeries(); telemetryDataSinkTimeSeries.Setup(dynamicConnectionStringResolver, settingsDictionary); settingOperation.ReceivedWithAnyArgs(1).Get(Arg.Any <SettingId>()); }
static void Main(string[] args) { SettingReolver.Instance.Initialize(args); var localConnectionParametersResolver = new LocalConnectionParametersResolver(); var management = new AzureCloudStorageClientFactory(localConnectionParametersResolver); var tableEntityOperations = management.GetTableEntityOperation(); tableEntityOperations.EnsureTable("LoginUser");; tableEntityOperations.EnsureTable("User"); tableEntityOperations.EnsureTable("Company"); tableEntityOperations.EnsureTable("Service"); tableEntityOperations.EnsureTable("Network"); tableEntityOperations.EnsureTable("Device"); tableEntityOperations.EnsureTable("Setting"); var settingRepository = new GenericRepository <SettingTableEntity>(tableEntityOperations, "Setting"); CreateSettingIfNotExist(settingRepository, Setting.ServiceProfile, "runtime.serviceprofile", ServiceProfile.ServiceProvider.ToString()); CreateSettingIfNotExist(settingRepository, Setting.EmailActivation, "runtime.emailactivation", "false"); CreateSettingIfNotExist(settingRepository, Setting.TelemetrySetupServiceEndpoint, "microservice.telemetrysetupserviceendpoint", "http://localhost:8001/v1/telemetryDataSinkSetup"); CreateSettingIfNotExist(settingRepository, Setting.TelemetrySetupServiceApiKey, null, Crypto.GenerateSafeRandomToken()); CreateSettingIfNotExist(settingRepository, Setting.MessagingServiceEndpoint, "microservice.messagingserviceendpoint", "http://localhost:8003/v1/messaging"); CreateSettingIfNotExist(settingRepository, Setting.MessagingServiceApiKey, null, Crypto.GenerateSafeRandomToken()); CreateSettingIfNotExist(settingRepository, SettingId.GetConnection("TelemetryConnection"), "telemetry.connection", "UseDevelopmentStorage=true"); CreateSettingIfNotExist(settingRepository, Setting.WebsiteUrl, "publicurl.web", "http://localhost:7999"); CreateSettingIfNotExist(settingRepository, Setting.ManagementApiUrl, "publicurl.managementapi", "http://localhost:8000/v1"); CreateSettingIfNotExist(settingRepository, Setting.PlatformApiUrl, "publicurl.platformapi", "http://localhost:8001/v1"); CreateSettingIfNotExist(settingRepository, Setting.PlatformWsUrl, "publicurl.platformwebsocket", "ws://localhost:8080"); CreateSettingIfNotExist(settingRepository, Setting.ReportingApiUrl, "publicurl.reportingapi", "http://localhost:8002/v1"); CreateOrUpdateSetting(settingRepository, new SettingId("Version", "Database"), "1"); }
static void Main(string[] args) { SettingReolver.Instance.Initialize(args); var unitOfWorkFactory = (IManagementUnitOfWorkFactory)Activator.CreateInstance( Type.GetType(ConfigurationManager.AppSettings["IManagementUnitOfWorkFactory"]), new LocalConnectionParametersResolver()); using (var managementUnitOfWork = unitOfWorkFactory.Create()) { var script = File.ReadAllText(Path.Combine("CreateScripts", ConfigurationManager.AppSettings["Script"])); Console.WriteLine("Executing DB schema update..."); managementUnitOfWork.ExecuteScript(script); Console.WriteLine("DB schema update done."); var settingRepository = managementUnitOfWork.GetSettingRepository(); CreateSettingIfNotExist(settingRepository, Setting.ServiceProfile, "runtime.serviceprofile", ServiceProfile.ServiceProvider.ToString()); CreateSettingIfNotExist(settingRepository, Setting.EmailActivation, "runtime.emailactivation", "false"); CreateSettingIfNotExist(settingRepository, Setting.TelemetrySetupServiceEndpoint, "microservice.telemetrysetupserviceendpoint", "http://localhost/papi/v1/telemetryDataSinkSetup"); CreateSettingIfNotExist(settingRepository, Setting.TelemetrySetupServiceApiKey, null, Crypto.GenerateSafeRandomToken()); CreateSettingIfNotExist(settingRepository, Setting.MessagingServiceEndpoint, "microservice.messagingserviceendpoint", "http://localhost/msvc/v1/messaging"); CreateSettingIfNotExist(settingRepository, Setting.MessagingServiceApiKey, null, Crypto.GenerateSafeRandomToken()); CreateSettingIfNotExist(settingRepository, SettingId.GetConnection("TelemetryConnection"), "telemetry.connection", ConfigurationManager.AppSettings["TelemetryConnection"]); CreateSettingIfNotExist(settingRepository, Setting.WebsiteUrl, "publicurl.web", "http://localhost"); CreateSettingIfNotExist(settingRepository, Setting.ManagementApiUrl, "publicurl.managementapi", "http://localhost/api/v1"); CreateSettingIfNotExist(settingRepository, Setting.PlatformApiUrl, "publicurl.platformapi", "http://localhost/papi/v1"); CreateSettingIfNotExist(settingRepository, Setting.PlatformWsUrl, "publicurl.platformwebsocket", "ws://localhost:8080"); CreateSettingIfNotExist(settingRepository, Setting.ReportingApiUrl, "publicurl.reportingapi", "http://localhost/rapi/v1"); managementUnitOfWork.Commit(); } }
public Setting Get(SettingId id) { using (var unitOfWork = _platformUnitOfWorkFactory.Create()) { var setting = unitOfWork.GetSettingRepository().List(s => s.Category == id.Category && s.Config == id.Config); if (setting.Count() != 1) { throw new NotFoundException(); } return(setting.Single()); } }
private static void CreateSettingIfNotExist(GenericRepository <SettingTableEntity> settingRepository, SettingId settingId, string configurationSlot, string defaultValue) { var partitionKeyRowKeyPair = new PartionKeyRowKeyPair(settingId.Category, settingId.Config); if (settingRepository.Get(partitionKeyRowKeyPair) == null) { var value = SettingReolver.Instance.Resolve(configurationSlot, defaultValue); var settingTableEntity = new SettingTableEntity(settingId, value); settingRepository.Create(settingTableEntity); Console.WriteLine("Added {0}", settingId); } }
public void Delete(SettingId id) { using (var unitOfWork = _managementUnitOfWorkFactory.Create()) { var settingRepository = unitOfWork.GetSettingRepository(); var settingEntity = settingRepository.List(s => s.Category == id.Category && s.Config == id.Config); if (settingEntity.Count() != 1) { throw new NotFoundException(); } settingRepository.Delete(settingEntity.Single()); unitOfWork.Commit(); } }
private static void CreateSettingIfNotExist(SettingRepository settingRepository, SettingId settingId, string configurationSlot, string defaultValue) { //var settings = settingRepository.List(s => s.Category == settingId.Category && s.Config == settingId.Config); // EF7 workaround var settings = settingRepository.List(s => s.Category == settingId.Category) .Where(s => s.Config == settingId.Config) .ToList(); if (settings.Count == 0) { var value = SettingReolver.Instance.Resolve(configurationSlot, defaultValue); var setting = new Setting(settingId, value); settingRepository.Create(setting); Console.WriteLine("Added {0}", settingId); } }
public void UpdateSettingTest() { var environmentFactory = EnvironmentFactoryFactory.Create(); var settingOperations = environmentFactory.ManagementEnvironment.MgmtSettingOperations; var settingId = new SettingId(Identity.Next(), Identity.Next()); settingOperations.Create(new Setting(settingId, "value")); var newSetting = settingOperations.Get(settingId); Assert.AreEqual(settingId.ToString(), newSetting.Id.ToString()); Assert.AreEqual("value", newSetting.Value); newSetting.Value += "mod"; settingOperations.Update(newSetting); var modSetting = settingOperations.Get(settingId); Assert.AreEqual(settingId.ToString(), modSetting.Id.ToString()); Assert.AreEqual("valuemod", modSetting.Value); }
public Setting Get(SettingId id) { return(Get(id, i => _settingOperations.Get((SettingId)i))); }
private static void CreateOrUpdateSetting(GenericRepository <SettingTableEntity> settingRepository, SettingId settingId, string value) { var partitionKeyRowKeyPair = new PartionKeyRowKeyPair(settingId.Category, settingId.Config); var settingTableEntity = settingRepository.Get(partitionKeyRowKeyPair); if (settingTableEntity == null) { settingTableEntity = new SettingTableEntity(settingId, value); settingRepository.Create(settingTableEntity); Console.WriteLine("Added {0}", settingId); } else { if (settingTableEntity.Value != value) { settingTableEntity.Value = value; settingRepository.Update(settingTableEntity); Console.WriteLine("Updated {0}", settingId); } } }
public static Setting Setting(SettingId id, string value) { return(new Setting(id, value)); }