public static Library GetLibaryByCode(string code) { if (string.IsNullOrWhiteSpace(code)) { return(Library.Unknown); } lock (_dictCodeToLibary) { if (_dictCodeToLibary.Count == 0) { List <FieldInfo> listFields = typeof(Library).GetFields().ToList(); foreach (Library library in EnumUtils.GetAll <Library>()) { if (library == Library.Unknown) { continue; } FieldInfo field = listFields.FirstOrDefault(x => x.Name == library.ToString()); LibraryAttribute attr = field?.GetCustomAttribute <LibraryAttribute>(); if (!string.IsNullOrWhiteSpace(attr?.Code)) { _dictCodeToLibary[attr.Code] = library; } } } _dictCodeToLibary.TryGetValue(code, out Library retVal); return(retVal); } }
///<summary>Returns the code for the given library.</summary> public static string GetCodeByLibrary(Library library) { lock (_dictLibraryToCode) { if (_dictLibraryToCode.Count == 0) { List <FieldInfo> listFields = typeof(Library).GetFields().ToList(); foreach (Library lib in EnumUtils.GetAll <Library>()) { FieldInfo field = listFields.FirstOrDefault(x => x.Name == lib.ToString()); LibraryAttribute attr = field?.GetCustomAttribute <LibraryAttribute>(); _dictLibraryToCode[lib] = attr?.Code ?? ""; } } _dictLibraryToCode.TryGetValue(library, out string code); return(code); } }
public static string GetLibraryName(Library library) { lock (_dictLibraryToName) { if (_dictLibraryToName.Count == 0) { List <FieldInfo> listFields = typeof(Library).GetFields().ToList(); foreach (Library lib in EnumUtils.GetAll <Library>()) { if (lib == Library.Unknown) { continue; } FieldInfo field = listFields.FirstOrDefault(x => x.Name == lib.ToString()); LibraryAttribute attr = field?.GetCustomAttribute <LibraryAttribute>(); _dictLibraryToName[lib] = attr?.Name ?? lib.ToString(); } } _dictLibraryToName.TryGetValue(library, out string name); return(name ?? ""); } }