NHibernate.OData.AliasingNormalizeVisitor.ResolveName C# (CSharp) Method

ResolveName() private method

private ResolveName ( MappedClassMetadata mappedClass, string mappedClassPath, string name, System &type ) : string
mappedClass MappedClassMetadata
mappedClassPath string
name string
type System
return string
        private string ResolveName(MappedClassMetadata mappedClass, string mappedClassPath, string name, ref System.Type type)
        {
            if (type == null)
                return name;

            // Dynamic component support
            if (type == typeof(IDictionary) && mappedClass != null)
            {
                string fullPath = mappedClassPath + "." + name;

                var dynamicProperty = mappedClass.FindDynamicComponentProperty(fullPath, _context.CaseSensitiveResolve);

                if (dynamicProperty == null)
                    throw new QueryException(String.Format(
                        ErrorMessages.Resolve_CannotResolveDynamicComponentMember, name, mappedClassPath, type
                    ));

                type = dynamicProperty.Type;
                return dynamicProperty.Name;
            }

            var resolvedName = _context.NameResolver.ResolveName(name, type, _context.CaseSensitiveResolve);
            if (resolvedName != null)
            {
                type = resolvedName.Type;
                return resolvedName.Name;
            }

            throw new QueryException(String.Format(
                ErrorMessages.Resolve_CannotResolveName, name, type)
            );
        }
    }