private static bool VerifySharesValuesWith(ADObject directoryObj, StringBuilder errorBuffer, ADObject resourcePropertyValueTypeObj, CmdletSessionInfo cmdletSessionInfo) { bool flag = false; if (directoryObj.Contains("msDS-ClaimSharesPossibleValuesWith") && resourcePropertyValueTypeObj != null) { ADClaimTypeFactory <ADClaimType> aDClaimTypeFactory = new ADClaimTypeFactory <ADClaimType>(); aDClaimTypeFactory.SetCmdletSessionInfo(cmdletSessionInfo); ADClaimType aDClaimType = new ADClaimType(); aDClaimType.Identity = directoryObj["msDS-ClaimSharesPossibleValuesWith"].Value as string; string str = ADPathModule.MakePath(cmdletSessionInfo.ADRootDSE.ConfigurationNamingContext, "CN=Claims Configuration,CN=Services,", ADPathFormat.X500); str = ADPathModule.MakePath(str, "CN=Claim Types,", ADPathFormat.X500); ADObject extendedObjectFromIdentity = aDClaimTypeFactory.GetExtendedObjectFromIdentity(aDClaimType, str); if (!extendedObjectFromIdentity.Contains("CompatibleResourceTypes") || extendedObjectFromIdentity["CompatibleResourceTypes"].Value == null) { flag = true; errorBuffer.AppendLine(StringResources.ResourcePropertySharesValueWithValueTypeError); } else { List <string> value = extendedObjectFromIdentity["CompatibleResourceTypes"].Value as List <string>; if (!value.Contains(resourcePropertyValueTypeObj.Name)) { flag = true; errorBuffer.AppendLine(StringResources.ResourcePropertySharesValueWithValueTypeError); } } } return(!flag); }
private bool ADClaimTypePreCommitFSRoutine(ADFactory <T> .DirectoryOperation operation, T instance, ADParameterSet parameters, ADObject directoryObj) { bool classes = true; StringBuilder stringBuilder = new StringBuilder(); if (operation == ADFactory <T> .DirectoryOperation.Create || ADFactory <T> .DirectoryOperation.Update == operation) { bool switchParameterBooleanValue = parameters.GetSwitchParameterBooleanValue("SourceTransformPolicy"); if (switchParameterBooleanValue) { directoryObj.SetValue("msDS-ClaimSourceType", "TransformPolicy"); directoryObj.ForceRemove("msDS-ClaimAttributeSource"); directoryObj.ForceRemove("msDS-ClaimSource"); } classes = classes & ADClaimTypeFactory <T> .VerifyClaimSourceAndAttributeExclusiveness(directoryObj, stringBuilder, operation); classes = classes & ADClaimTypeFactory <T> .VerifyClaimSourceAndPossibleValueExclusiveness(directoryObj, stringBuilder); classes = classes & ADClaimTypeFactory <T> .SetAndValidateClaimSourceType(directoryObj, stringBuilder); classes = classes & ADClaimTypeFactory <T> .VerifyRestrictValues(directoryObj, stringBuilder, base.CmdletSessionInfo, operation); if (directoryObj.Contains("msDS-ClaimValueType")) { ADClaimValueType num = (ADClaimValueType)((long)Convert.ToInt32(directoryObj["msDS-ClaimValueType"].Value, CultureInfo.InvariantCulture)); classes = classes & ADCBACUtil.VerifyAndSetPossibleValues(directoryObj, num, stringBuilder); } classes = classes & ADClaimTypeFactory <T> .VerifyAppliesToClasses(directoryObj, stringBuilder, base.CmdletSessionInfo); if (classes) { return(false); } else { stringBuilder.AppendLine(StringResources.CTParameterValidationFailure); throw new ADException(stringBuilder.ToString()); } } else { return(false); } }