internal void WriteAnnotationStringAttribute(IEdmDirectValueAnnotation annotation)
        {
            var edmValue = (IEdmPrimitiveValue)annotation.Value;

            if (edmValue != null)
            {
                this.xmlWriter.WriteAttributeString(annotation.Name, annotation.NamespaceUri, EdmValueWriter.PrimitiveValueAsXml(edmValue));
            }
        }
 internal void WriteBinaryConstantExpressionElement(IEdmBinaryConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Binary);
     this.xmlWriter.WriteString(EdmValueWriter.BinaryAsXml(expression.Value));
     this.WriteEndElement();
 }
Beispiel #3
0
 /// <summary>
 /// Convert an instance of primitive type to string
 /// </summary>
 /// <param name="instance">The instance</param>
 /// <returns>The string representation of the instance</returns>
 internal override string ToString(object instance)
 {
     return(EdmValueWriter.DurationAsXml((TimeSpan)instance));
 }
Beispiel #4
0
        /// <summary>
        /// Write a TimeSpan value.
        /// </summary>
        /// <param name="writer">The text writer to write the output to.</param>
        /// <param name="value">TimeSpan value to be written.</param>
        internal static void WriteValue(TextWriter writer, TimeSpan value)
        {
            Debug.Assert(writer != null, "writer != null");

            WriteQuoted(writer, EdmValueWriter.DurationAsXml(value));
        }
Beispiel #5
0
        /// <summary>
        /// Formats the literal without a type prefix, quotes, or escaping.
        /// </summary>
        /// <param name="value">The non-null value to format.</param>
        /// <returns>The formatted literal, without type marker or quotes.</returns>
        private static string FormatRawLiteral(object value)
        {
            Debug.Assert(value != null, "value != null");

            string stringValue = value as string;

            if (stringValue != null)
            {
                return(stringValue);
            }

            if (value is bool)
            {
                return(XmlConvert.ToString((bool)value));
            }

            if (value is byte)
            {
                return(XmlConvert.ToString((byte)value));
            }

#if ASTORIA_SERVER
            if (value is DateTime)
            {
                // Since the server/client supports DateTime values, convert the DateTime value
                // to DateTimeOffset and use XmlCOnvert to convert to String.
                DateTimeOffset dto = WebUtil.ConvertDateTimeToDateTimeOffset((DateTime)value);
                return(XmlConvert.ToString(dto));
            }
#endif

            if (value is decimal)
            {
                return(XmlConvert.ToString((decimal)value));
            }

            if (value is double)
            {
                string formattedDouble = XmlConvert.ToString((double)value);
                formattedDouble = SharedUtils.AppendDecimalMarkerToDouble(formattedDouble);
                return(formattedDouble);
            }

            if (value is Guid)
            {
                return(value.ToString());
            }

            if (value is short)
            {
                return(XmlConvert.ToString((Int16)value));
            }

            if (value is int)
            {
                return(XmlConvert.ToString((Int32)value));
            }

            if (value is long)
            {
                return(XmlConvert.ToString((Int64)value));
            }

            if (value is sbyte)
            {
                return(XmlConvert.ToString((SByte)value));
            }

            if (value is float)
            {
                return(XmlConvert.ToString((Single)value));
            }

            byte[] array = value as byte[];
            if (array != null)
            {
                return(ConvertByteArrayToKeyString(array));
            }

            if (value is Date)
            {
                return(value.ToString());
            }

            if (value is DateTimeOffset)
            {
                return(XmlConvert.ToString((DateTimeOffset)value));
            }

            if (value is TimeOfDay)
            {
                return(value.ToString());
            }

            if (value is TimeSpan)
            {
                return(EdmValueWriter.DurationAsXml((TimeSpan)value));
            }

            Geography geography = value as Geography;
            if (geography != null)
            {
                return(WellKnownTextSqlFormatter.Create(true).Write(geography));
            }

            Geometry geometry = value as Geometry;
            if (geometry != null)
            {
                return(WellKnownTextSqlFormatter.Create(true).Write(geometry));
            }

            throw SharedUtils.CreateExceptionForUnconvertableType(value);
        }
 /// <summary>
 /// Converts the given timespan value to the string appropriate for raw value format
 /// </summary>
 /// <param name="ts">The timespan value to convert.</param>
 /// <returns>The string version of the timespan value in raw value format.</returns>
 internal static string ToString(this TimeSpan ts)
 {
     return(EdmValueWriter.DurationAsXml(ts));
 }
 internal void WriteIntegerConstantExpressionElement(IEdmIntegerConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Int);
     this.xmlWriter.WriteString(EdmValueWriter.LongAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal void WriteTimeOfDayConstantExpressionElement(IEdmTimeOfDayConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_TimeOfDay);
     this.xmlWriter.WriteString(EdmValueWriter.TimeOfDayAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal void WriteFloatingConstantExpressionElement(IEdmFloatingConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Float);
     this.xmlWriter.WriteString(EdmValueWriter.FloatAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal void WriteGuidConstantExpressionElement(IEdmGuidConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Guid);
     this.xmlWriter.WriteString(EdmValueWriter.GuidAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal void WriteDecimalConstantExpressionElement(IEdmDecimalConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Decimal);
     this.xmlWriter.WriteString(EdmValueWriter.DecimalAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal void WriteDateTimeOffsetConstantExpressionElement(IEdmDateTimeOffsetConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_DateTimeOffset);
     this.xmlWriter.WriteString(EdmValueWriter.DateTimeOffsetAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal override void WriteDurationConstantExpressionElement(IEdmDurationConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Duration);
     this.xmlWriter.WriteString(EdmValueWriter.DurationAsXml(expression.Value));
     this.WriteEndElement();
 }
 internal override void WriteBooleanConstantExpressionElement(IEdmBooleanConstantExpression expression)
 {
     this.xmlWriter.WriteStartElement(CsdlConstants.Element_Bool);
     this.xmlWriter.WriteString(EdmValueWriter.BooleanAsXml(expression.Value));
     this.WriteEndElement();
 }
Beispiel #15
0
        /// <summary>
        /// Write a TimeSpan value.
        /// </summary>
        /// <param name="writer">The text writer to write the output to.</param>
        /// <param name="value">TimeSpan value to be written.</param>
        internal static async Task WriteValueAsync(this TextWriter writer, TimeSpan value)
        {
            Debug.Assert(writer != null, "writer != null");

            await writer.WriteQuotedAsync(EdmValueWriter.DurationAsXml(value)).ConfigureAwait(false);
        }