private static Dictionary<string, int> BuildErrorMap()
{
var map = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
var fields = typeof(SystemErrorCodes).GetFields(BindingFlags.Public | BindingFlags.Static);
foreach (var field in fields) {
if (!Attribute.IsDefined(field, typeof(ErrorNameAttribute)))
continue;
var nameAttr = (ErrorNameAttribute) Attribute.GetCustomAttribute(field, typeof(ErrorNameAttribute));
map[nameAttr.Name] = (int) field.GetValue(null);
}
return map;
}