internal static ADSuggestedValueType GetsuggestedValueTypeFromClaimType(ADClaimValueType claimValaueType) { ADSuggestedValueType aDSuggestedValueType = ADSuggestedValueType.Invalid; ADClaimValueType aDClaimValueType = claimValaueType; if (aDClaimValueType <= ADClaimValueType.SID) { if (aDClaimValueType >= ADClaimValueType.Int64) { if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 0) { aDSuggestedValueType = ADSuggestedValueType.Int64; return(aDSuggestedValueType); } else if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 1) { aDSuggestedValueType = ADSuggestedValueType.UInt64; return(aDSuggestedValueType); } else if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 2 || (int)(aDClaimValueType - ADClaimValueType.Int64) == 3 || (int)(aDClaimValueType - ADClaimValueType.Int64) == 4) { aDSuggestedValueType = ADSuggestedValueType.String; return(aDSuggestedValueType); } } else { return(aDSuggestedValueType); } } if (aDClaimValueType != ADClaimValueType.OctetString) { return(aDSuggestedValueType); } aDSuggestedValueType = ADSuggestedValueType.String; return(aDSuggestedValueType); }
internal static string GetSuggestedValueXmlFromSuggestedValueEntryList(ADSuggestedValueEntry[] claimValues, ADSuggestedValueType valueType) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(PossibleClaimValuesType)); PossibleClaimValuesType possibleClaimValuesType = new PossibleClaimValuesType(); ADSuggestedValueType aDSuggestedValueType = valueType; if (aDSuggestedValueType == ADSuggestedValueType.Int64) { IntegerListType integerListType = new IntegerListType(); List <IntegerItemType> integerItemTypes = new List <IntegerItemType>(); ADSuggestedValueEntry[] aDSuggestedValueEntryArray = claimValues; for (int i = 0; i < (int)aDSuggestedValueEntryArray.Length; i++) { ADSuggestedValueEntry aDSuggestedValueEntry = aDSuggestedValueEntryArray[i]; IntegerItemType integerItemType = new IntegerItemType(); integerItemType.Value = Convert.ToInt64(aDSuggestedValueEntry.Value, CultureInfo.InvariantCulture); integerItemType.ValueDescription = aDSuggestedValueEntry.ValueDescription; integerItemType.ValueDisplayName = aDSuggestedValueEntry.ValueDisplayName; integerItemType.ValueGUID = aDSuggestedValueEntry.ValueGUID; integerItemTypes.Add(integerItemType); } integerListType.Item = integerItemTypes.ToArray(); possibleClaimValuesType.Item = integerListType; } else if (aDSuggestedValueType == ADSuggestedValueType.UInt64) { UnsignedIntegerListType unsignedIntegerListType = new UnsignedIntegerListType(); List <UnsignedIntegerItemType> unsignedIntegerItemTypes = new List <UnsignedIntegerItemType>(); ADSuggestedValueEntry[] aDSuggestedValueEntryArray1 = claimValues; for (int j = 0; j < (int)aDSuggestedValueEntryArray1.Length; j++) { ADSuggestedValueEntry aDSuggestedValueEntry1 = aDSuggestedValueEntryArray1[j]; UnsignedIntegerItemType unsignedIntegerItemType = new UnsignedIntegerItemType(); unsignedIntegerItemType.Value = Convert.ToUInt64(aDSuggestedValueEntry1.Value, CultureInfo.InvariantCulture); unsignedIntegerItemType.ValueDescription = aDSuggestedValueEntry1.ValueDescription; unsignedIntegerItemType.ValueDisplayName = aDSuggestedValueEntry1.ValueDisplayName; unsignedIntegerItemType.ValueGUID = aDSuggestedValueEntry1.ValueGUID; unsignedIntegerItemTypes.Add(unsignedIntegerItemType); } unsignedIntegerListType.Item = unsignedIntegerItemTypes.ToArray(); possibleClaimValuesType.Item = unsignedIntegerListType; } else if (aDSuggestedValueType == ADSuggestedValueType.String) { StringListType stringListType = new StringListType(); List <StringItemType> stringItemTypes = new List <StringItemType>(); ADSuggestedValueEntry[] aDSuggestedValueEntryArray2 = claimValues; for (int k = 0; k < (int)aDSuggestedValueEntryArray2.Length; k++) { ADSuggestedValueEntry aDSuggestedValueEntry2 = aDSuggestedValueEntryArray2[k]; StringItemType stringItemType = new StringItemType(); stringItemType.Value = (string)aDSuggestedValueEntry2.Value; stringItemType.ValueDescription = aDSuggestedValueEntry2.ValueDescription; stringItemType.ValueDisplayName = aDSuggestedValueEntry2.ValueDisplayName; stringItemType.ValueGUID = aDSuggestedValueEntry2.ValueGUID; stringItemTypes.Add(stringItemType); } stringListType.Item = stringItemTypes.ToArray(); possibleClaimValuesType.Item = stringListType; } else { throw new ADException("Unable to create Suggested Values Xml for the given Claim Type"); } StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture); xmlSerializer.Serialize(stringWriter, possibleClaimValuesType); return(stringWriter.ToString()); }