public async Task Manager_Update_Test() { var info = new SettingModelUpdateSto { TypeFullName = typeof(SampleSetting).FullName, ProviderName = TenantSettingValueProvider.ProviderName, Properties = new List <SettingModelPropertySto> { new SettingModelPropertySto { Name = "Name", Value = "Tom" }, new SettingModelPropertySto { Name = "Age", Value = "30" }, new SettingModelPropertySto { Name = "MaritalStatus", Value = "true" }, new SettingModelPropertySto { Name = "Asset", Value = "5000" } } }; await _settingModelManager.UpdateAsync(info); _sampleSetting.Name.ShouldBe(info.Properties[0].Value); _sampleSetting.Age.ShouldBe(info.Properties[1].Value.To <int>()); _sampleSetting.MaritalStatus.ShouldBe(info.Properties[2].Value.To <bool>()); _sampleSetting.Asset.ShouldBe(info.Properties[3].Value.To <double>()); }
public async Task UpdateAsync(SettingModelUpdateSto sto) { _settingValueProviderManager.CheckProviderName(sto.ProviderName); var model = _settingModelTypeManager.EditableModels.Find(t => t.GetType().FullName == sto.TypeFullName ); Check.NotNull(model, sto.TypeFullName); model.SetValueProviderName(sto.ProviderName); var providerKey = GetProviderKey(sto.ProviderName); var inputPropertys = sto.Properties.ToDictionary(key => key.Name, val => val.Value); await ChangeSettingInternalAsync(model.GetType(), sto.ProviderName, providerKey, inputPropertys); }
public async Task Manager_Update_ChangeProviderName_Test() { var info = new SettingModelUpdateSto { TypeFullName = typeof(SampleSetting).FullName, ProviderName = "test", Properties = new List <SettingModelPropertySto> { new SettingModelPropertySto { Name = "Name", Value = "Tom" }, new SettingModelPropertySto { Name = "Age", Value = "30" }, new SettingModelPropertySto { Name = "MaritalStatus", Value = "true" }, new SettingModelPropertySto { Name = "Asset", Value = "5000" } } }; await Assert.ThrowsAsync <ArgumentNullException>(async() => await _settingModelManager.UpdateAsync(info) ); info.ProviderName = UserSettingValueProvider.ProviderName; await _settingModelManager.UpdateAsync(info); _sampleSetting.Name.ShouldBe(SampleSetting.NameDefaultValue); _sampleSetting.Age.ShouldBe(0); _sampleSetting.MaritalStatus.ShouldBeFalse(); _sampleSetting.Asset.ShouldBe(0); info.ProviderName = TenantSettingValueProvider.ProviderName; await _settingModelManager.UpdateAsync(info); _sampleSetting.Name.ShouldBe(info.Properties[0].Value); _sampleSetting.Age.ShouldBe(info.Properties[1].Value.To <int>()); _sampleSetting.MaritalStatus.ShouldBe(info.Properties[2].Value.To <bool>()); _sampleSetting.Asset.ShouldBe(info.Properties[3].Value.To <double>()); }