Пример #1
0
		public ImportSettingsGroupResponse ImportSettingsGroup(ImportSettingsGroupRequest request)
		{
			Platform.CheckForNullReference(request, "request");
			Platform.CheckMemberIsSet(request.Group, "Group");

			var broker = PersistenceContext.GetBroker<IConfigurationSettingsGroupBroker>();
			var where = ConfigurationSettingsGroup.GetCriteria(request.Group);
			var group = CollectionUtils.FirstElement(broker.Find(where));
			if (group == null)
			{
				// group doesn't exist, need to create it
				group = new ConfigurationSettingsGroup();
				group.UpdateFromDescriptor(request.Group);
				PersistenceContext.Lock(group, DirtyState.New);
			}
			else
			{
				// update group from descriptor
				group.UpdateFromDescriptor(request.Group);
			}

			if (request.Properties != null)
			{
				// update properties
				group.SettingsProperties.Clear();
				foreach (var descriptor in request.Properties)
				{
					var property = new ConfigurationSettingsProperty();
					property.UpdateFromDescriptor(descriptor);
					group.SettingsProperties.Add(property);
				}
			}

			PersistenceContext.SynchState();

			return new ImportSettingsGroupResponse();
		}
		public void TestCacheListSettingsGroups()
		{
			var cache = new TestCacheClient();
			cache.ClearCache();

			var service = new TestConfigurationService();
			object request = new ListSettingsGroupsRequest();
			object response = new ListSettingsGroupsResponse(new List<SettingsGroupDescriptor>());
			var invocation = new TestInvocation
			{
				Target = service,
				Method = typeof(IApplicationConfigurationReadService).GetMethod("ListSettingsGroups", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public),
				TargetType = typeof(IApplicationConfigurationReadService),
				Request = request,
				Response = response
			};

			var directive = new ResponseCachingDirective(true, TimeSpan.FromMinutes(1), ResponseCachingSite.Server);
			var advice = new ConcreteResponseCachingAdvice(directive);
			advice.Intercept(invocation);

			var cacheEntry = cache.Get("ListSettingsGroups", new CacheGetOptions(""));
			Assert.IsNotNull(cacheEntry);

			request = new ImportSettingsGroupRequest(
				new SettingsGroupDescriptor("Test", new Version(1,0), "Test", "Test", true), 
				new List<SettingsPropertyDescriptor>(new[]{new SettingsPropertyDescriptor("Test", "Test", "Test", SettingScope.User, "Test") }));
			response = new ImportSettingsGroupResponse();

			invocation = new TestInvocation
			{
				Target = service,
				Method = typeof(IConfigurationService).GetMethod("ImportSettingsGroup", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public),
				TargetType = typeof(IConfigurationService),
				Request = request,
				Response = response
			};

			advice = new ConcreteResponseCachingAdvice(null);
			advice.Intercept(invocation);

			cacheEntry = cache.Get("ListSettingsGroups", new CacheGetOptions(""));
			Assert.IsNull(cacheEntry);
		}
			public ImportSettingsGroupResponse ImportSettingsGroup(ImportSettingsGroupRequest request)
			{
				throw new NotImplementedException();
			}