GetQualifiedTypePrefix() static private method

static private GetQualifiedTypePrefix ( string ownerName ) : string
ownerName string
return string
Example #1
0
        private static object ConvertBsonValue(BsonValue bsonValue, ResourceType resourceType, ResourceProperty resourceProperty, string propertyName, MongoMetadata mongoMetadata)
        {
            if (bsonValue == null)
            {
                return(null);
            }

            object propertyValue = null;
            bool   convertValue;

            if (bsonValue.GetType() == typeof(BsonDocument))
            {
                var bsonDocument = bsonValue.AsBsonDocument;
                if (IsCsharpNullDocument(bsonDocument))
                {
                    convertValue = false;
                }
                else
                {
                    propertyValue = CreateDSPResource(bsonDocument, mongoMetadata, propertyName,
                                                      MongoMetadata.GetQualifiedTypePrefix(resourceType.Name));
                    convertValue = true;
                }
            }
            else if (bsonValue.GetType() == typeof(BsonArray))
            {
                var bsonArray = bsonValue.AsBsonArray;
                if (bsonArray != null && bsonArray.Count > 0)
                {
                    propertyValue = ConvertBsonArray(bsonArray, resourceType, propertyName, mongoMetadata);
                }
                convertValue = false;
            }
            else if (bsonValue.GetType() == typeof(BsonNull) && resourceProperty.Kind == ResourcePropertyKind.Collection)
            {
                propertyValue = ConvertBsonArray(new BsonArray(0), resourceType, propertyName, mongoMetadata);
                convertValue  = false;
            }
            else
            {
                propertyValue = ConvertRawValue(bsonValue);
                convertValue  = true;
            }

            if (propertyValue != null && convertValue)
            {
                var  propertyType = resourceProperty.ResourceType.InstanceType;
                Type underlyingNonNullableType = Nullable.GetUnderlyingType(resourceProperty.ResourceType.InstanceType);
                if (underlyingNonNullableType != null)
                {
                    propertyType = underlyingNonNullableType;
                }
                propertyValue = Convert.ChangeType(propertyValue, propertyType);
            }

            return(propertyValue);
        }
Example #2
0
        private static object ConvertBsonArray(BsonArray bsonArray, ResourceType resourceType, string propertyName, MongoMetadata mongoMetadata)
        {
            if (bsonArray == null || bsonArray.Count == 0)
            {
                return(new object[0]);
            }

            bool isDocument       = false;
            int  nonNullItemCount = 0;

            for (int index = 0; index < bsonArray.Count; index++)
            {
                if (bsonArray[index] != BsonNull.Value)
                {
                    if (bsonArray[index].GetType() == typeof(BsonDocument))
                    {
                        isDocument = true;
                    }
                    ++nonNullItemCount;
                }
            }
            object[] propertyValue = isDocument ? new DSPResource[nonNullItemCount] : new object[nonNullItemCount];
            int      valueIndex    = 0;

            for (int index = 0; index < bsonArray.Count; index++)
            {
                if (bsonArray[index] != BsonNull.Value)
                {
                    if (isDocument)
                    {
                        propertyValue[valueIndex++] = CreateDSPResource(bsonArray[index].AsBsonDocument, mongoMetadata,
                                                                        propertyName,
                                                                        MongoMetadata.GetQualifiedTypePrefix(resourceType.Name));
                    }
                    else
                    {
                        propertyValue[valueIndex++] = ConvertRawValue(bsonArray[index]);
                    }
                }
            }
            return(propertyValue);
        }