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(); }
/// <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)); }
/// <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)); }
/// <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(); }
/// <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); }