in src/DeloitteDigital.Atlas/Mapping/ItemMapper.cs [54:80]
private ModelMeta EnsureModelDictionaryEntryExists<TModel>(IDictionary<string, ModelMeta> metadataDictionary)
{
var modelType = typeof(TModel);
var modelMetaKey = modelType.AssemblyQualifiedName;
ModelMeta tmp = null;
if (metadataDictionary.TryGetValue(modelMetaKey, out tmp))
{
return tmp;
}
lock (MetaSyncRoot)
{
if (metadataDictionary.TryGetValue(modelMetaKey, out tmp))
{
return tmp;
}
var modelMeta = new ModelMeta();
var propertyMetaBuilder = new PropertyMetaBuilder();
modelMeta.PropertyMap = propertyMetaBuilder.BuildPropertyMetaMap<TModel>();
metadataDictionary.Add(modelMetaKey, modelMeta);
return modelMeta;
}
}