public bool TryGetApiEnumerationType(Type clrType, out IApiEnumerationType apiEnumerationType) { if (clrType != null) { return(this.ClrTypeToApiEnumerationTypeDictionary.TryGetValue(clrType, out apiEnumerationType)); } apiEnumerationType = null; return(false); }
public bool TryGetApiEnumerationType(string apiName, out IApiEnumerationType apiEnumerationType) { if (!String.IsNullOrWhiteSpace(apiName)) { return(this.ApiNameToApiEnumerationTypeDictionary.TryGetValue(apiName, out apiEnumerationType)); } apiEnumerationType = null; return(false); }
/// <summary>Gets the API enumeration value by CLR ordinal.</summary> /// <param name="clrOrdinal">CLR ordinal to lookup the API enumeration value by.</param> /// <returns>API enumeration value for the given CLR ordinal.</returns> /// <exception cref="ApiSchemaException">Is thrown if the API enumeration value is not found by CLR ordinal.</exception> // ReSharper disable once InvalidXmlDocComment public static IApiEnumerationValue GetApiEnumerationValueByClrOrdinal(this IApiEnumerationType apiEnumType, int clrOrdinal) { Contract.Requires(apiEnumType != null); if (apiEnumType.TryGetApiEnumerationValueByClrOrdinal(clrOrdinal, out var apiEnumValue)) { return(apiEnumValue); } // Unable to get API enumeration value by the given CLR ordinal. var message = $"Unable to get API enumeration value [clrOrdinal={clrOrdinal}] in the API enumeration type [apiName={apiEnumType.ApiName} clrName={apiEnumType.ClrType.Name}]."; throw new ApiSchemaException(message); }
// PUBLIC METHODS /////////////////////////////////////////////////// #region Extension Methods /// <summary>Gets the API enumeration value by API name.</summary> /// <param name="apiName">API name to lookup the API enumeration value by.</param> /// <returns>API enumeration value for the given API name.</returns> // ReSharper disable once InvalidXmlDocComment public static IApiEnumerationValue GetApiEnumerationValueByApiName(this IApiEnumerationType apiEnumType, string apiName) { Contract.Requires(apiEnumType != null); Contract.Requires(apiName != null); if (apiEnumType.TryGetApiEnumerationValueByApiName(apiName, out var apiEnumValue)) { return(apiEnumValue); } // Unable to get API enumeration value by the given API name. var message = $"Unable to get API enumeration value [apiName={apiName}] in the API enumeration type [apiName={apiEnumType.ApiName} clrName={apiEnumType.ClrType.Name}]."; throw new ApiSchemaException(message); }
/// <summary>Try and get the API enumeration type by CLR type.</summary> /// <typeparam name="TEnumeration">CLR type to lookup the API enumeration type by.</typeparam> /// <param name="apiEnumerationType">The API enumeration type if it exists in the API schema, null otherwise.</param> /// <returns>True if API enumeration type exists in the API schema, false otherwise.</returns> public static bool TryGetApiEnumerationType <TEnumeration>(this IApiSchema apiSchema, out IApiEnumerationType apiEnumerationType) { Contract.Requires(apiSchema != null); var clrType = typeof(TEnumeration); return(apiSchema.TryGetApiEnumerationType(clrType, out apiEnumerationType)); }
public TryGetApiEnumerationTypeWithClrTypeUnitTest(string name, IApiSchema apiSchema, IApiEnumerationType expectedApiEnumerationType) : base(name) { this.ApiSchema = apiSchema; this.ExpectedApiEnumerationType = expectedApiEnumerationType; }