internal void RegisterResourceProperty(MongoContext context, ResourceType resourceType, BsonElement element)
{
var collectionProperty = new CollectionProperty { CollectionType = resourceType, PropertyName = element.Name };
var resourceProperty = ResolveResourceProperty(resourceType, element);
if (resourceProperty == null)
{
lock (unresolvedProperties)
{
var unresolvedEarlier = unresolvedProperties.Contains(collectionProperty);
var resolvedNow = ResolveProviderType(element.Value, IsObjectId(element)) != null;
if (!unresolvedEarlier && !resolvedNow)
this.unresolvedProperties.Add(collectionProperty);
else if (unresolvedEarlier && resolvedNow)
this.unresolvedProperties.Remove(collectionProperty);
if (resolvedNow)
{
AddResourceProperty(context, resourceType.Name, resourceType, element, resourceType.ResourceTypeKind == ResourceTypeKind.EntityType);
}
}
}
}