internal static string EntityLabel <T>(this T entity) { var entityType = entity.GetType(); // http://stackoverflow.com/questions/157933 lock (_syncRoot) { if (!EntityLabelCache.ContainsKey(entityType)) { var label = entityType.GetCustomAttributes(typeof(CypherLabelAttribute), true).FirstOrDefault() as CypherLabelAttribute; try { EntityLabelCache.Add(entityType, label == null ? entityType.Name : label.Name); } catch (ArgumentException e) { var moreInfoException = new ArgumentException($"Failed to cache label '{label}' for type='{typeof(T).Name}'", e); throw moreInfoException; } } } var output = EntityLabelCache[entityType]; return(output); }
internal static void SetConfigLabel(Type type, string label) { if (EntityLabelCache.ContainsKey(type)) { EntityLabelCache[type] = label; } else { EntityLabelCache.Add(type, label); } }
internal static string EntityLabel <T>(this T entity) { var entityType = entity.GetType(); if (!EntityLabelCache.ContainsKey(entityType)) { var label = entityType.GetCustomAttributes(typeof(CypherLabelAttribute), true).FirstOrDefault() as CypherLabelAttribute; EntityLabelCache.Add(entityType, label == null ? entityType.Name : label.Name); } var output = EntityLabelCache[entityType]; return(output); }