internal virtual void WriteFunctionImportParameterElementHeader(FunctionParameter parameter)
 {
     this._xmlWriter.WriteStartElement("Parameter");
     this._xmlWriter.WriteAttributeString("Name", parameter.Name);
     this._xmlWriter.WriteAttributeString("Mode", parameter.Mode.ToString());
     this._xmlWriter.WriteAttributeString("Type", EdmXmlSchemaWriter.GetTypeName(parameter.TypeUsage.EdmType));
 }
        public virtual void WriteFunctionElementHeader(EdmFunction function)
        {
            this._xmlWriter.WriteStartElement("Function");
            this._xmlWriter.WriteAttributeString("Name", function.Name);
            this._xmlWriter.WriteAttributeString("Aggregate", XmlSchemaWriter.GetLowerCaseStringFromBoolValue(function.AggregateAttribute));
            this._xmlWriter.WriteAttributeString("BuiltIn", XmlSchemaWriter.GetLowerCaseStringFromBoolValue(function.BuiltInAttribute));
            this._xmlWriter.WriteAttributeString("NiladicFunction", XmlSchemaWriter.GetLowerCaseStringFromBoolValue(function.NiladicFunctionAttribute));
            this._xmlWriter.WriteAttributeString("IsComposable", XmlSchemaWriter.GetLowerCaseStringFromBoolValue(function.IsComposableAttribute));
            this._xmlWriter.WriteAttributeString("ParameterTypeSemantics", function.ParameterTypeSemanticsAttribute.ToString());
            this._xmlWriter.WriteAttributeString("Schema", function.Schema);
            if (function.StoreFunctionNameAttribute != null && function.StoreFunctionNameAttribute != function.Name)
            {
                this._xmlWriter.WriteAttributeString("StoreFunctionName", function.StoreFunctionNameAttribute);
            }
            if (function.ReturnParameters == null || !function.ReturnParameters.Any <FunctionParameter>())
            {
                return;
            }
            EdmType edmType = function.ReturnParameters.First <FunctionParameter>().TypeUsage.EdmType;

            if (edmType.BuiltInTypeKind != BuiltInTypeKind.PrimitiveType)
            {
                return;
            }
            this._xmlWriter.WriteAttributeString("ReturnType", EdmXmlSchemaWriter.GetTypeName(edmType));
        }
 internal virtual void WriteFunctionImportReturnTypeAttributes(
     FunctionParameter returnParameter,
     EntitySet entitySet,
     bool inline)
 {
     this._xmlWriter.WriteAttributeString(inline ? "ReturnType" : "Type", EdmXmlSchemaWriter.GetTypeName(returnParameter.TypeUsage.EdmType));
     if (entitySet == null)
     {
         return;
     }
     this._xmlWriter.WriteAttributeString("EntitySet", entitySet.Name);
 }
 private static string GetTypeName(EdmType type)
 {
     if (type.BuiltInTypeKind == BuiltInTypeKind.CollectionType)
     {
         return(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "Collection({0})", (object)EdmXmlSchemaWriter.GetTypeName(((CollectionType)type).TypeUsage.EdmType)));
     }
     if (type.BuiltInTypeKind != BuiltInTypeKind.PrimitiveType)
     {
         return(type.FullName);
     }
     return(type.Name);
 }