Beispiel #1
0
            public SettingTableEntity(SettingId settingId, string value)
            {
                PartitionKey = settingId.Category;
                RowKey       = settingId.Config;

                Value = value;
            }
Beispiel #2
0
        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>());
        }
Beispiel #4
0
        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");
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
        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());
            }
        }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
 public Setting Get(SettingId id)
 {
     return(Get(id, i => _settingOperations.Get((SettingId)i)));
 }
Beispiel #12
0
        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);
                }
            }
        }
Beispiel #13
0
 public static Setting Setting(SettingId id, string value)
 {
     return(new Setting(id, value));
 }