示例#1
0
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
        {
            Object result = null;

            try
            {
                double   x = 0, y = 0, width = 0, height = 0;
                string[] values = value.Split(' ');
                if (values.Length < 4)
                {
                    values = value.Split(',');
                }

                if (values.Length > 1)
                {
                    x = double.Parse(values[0]);
                    y = double.Parse(values[1]);
                }

                if (values.Length > 3)
                {
                    width  = double.Parse(values[2]);
                    height = double.Parse(values[3]);
                }

                result = new Rect(x, y, width, height);
            }
            catch (ArgumentNullException e) { }
            catch (ArgumentException e) { }

            return(result);
        }
示例#2
0
        /// <summary>
        ///     Sets the value of the field in the context
        /// </summary>
        /// <param name="context"></param>
        /// <param name="field"></param>
        /// <param name="valueString"></param>
        /// <param name="format"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public virtual Boolean SetField(Object context, FieldInfo field, String valueString, String[] format,
                                        IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            if (valueString == null)
            {
                return(true);
            }

            Boolean result = false;

            try
            {
                Object referenceObject = GetInstance(valueString, format, scalarUnmarshallingContext);
                if (referenceObject != null)
                {
                    field.SetValue(context, referenceObject);
                    result = true;
                }
            }
            catch (Exception e)
            {
                SetFieldError(field, valueString, e);
            }
            return(result);
        }
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
        {
            if (string.IsNullOrEmpty(value))
                return null;

            MetadataScalarType result = null;
            String simpleName;

            if (value != null && value.StartsWith("Metadata"))
                simpleName = value;
            else
            {
                if ("int".Equals(value) || "Int".Equals(value))
                    value = "Integer";	// be flexible about integer types

                int length = value.Length;

                StringBuilder buffy = new StringBuilder(length + 18);	// includes room for "Metadata" & "Type"
                buffy.Append("Metadata");
                char firstChar = value[0];
                if (char.IsLower(firstChar))
                {
                    buffy.Append(char.ToUpper(firstChar));
                    if (length > 1)
                        buffy.Append(value, 1, length - 1);
                }
                else
                {
                    buffy.Append(value);
                }
                simpleName = buffy.ToString();
            }
            return (MetadataScalarType)TypeRegistry.ScalarTypes[simpleName];
        }
示例#4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            try
            {
                DateTime? result = null;
                try
                {
                   result = UtcEpoch.AddMilliseconds(Convert.ToInt64(value));
                }
                catch (FormatException notUTC)
                {
                   Debug.WriteLine("date not in UTC epoch. trying builtin DateTime conversion.");
                    try
                    {
                        result = Convert.ToDateTime(value);
                    }
                    catch (FormatException notDateTime)
                    {
                        Debug.WriteLine("Date not properly formated. Skipping. Value = " + value.ToString());
                    }
                }

                return result;
            }
            catch(FormatException e)
            {
                return null;
            }
        }
示例#5
0
        /// <summary>
        ///     Creates and returns an instance of int type for the given
        ///     input value. 
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns>int</returns>
        public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            object result = null;
            int length = value.Length;

            if ((length > 0))
            {
                char firstChar = value[0];
                StringBuilder buffy = new StringBuilder(length + 4);	// includes room for "Type"

                if (char.IsLower(firstChar))
                {
                    buffy.Append(char.ToUpper(firstChar));
                    if (length > 1)
                    {
                        buffy.Append(value, 1, length - 1);
                    }
                }
                else
                {
                    buffy.Append(value);
                }

                buffy.Append("Type");

                result = TypeRegistry.ScalarTypes.SimpleName[buffy.ToString()];
            }
            return result;
        }
示例#6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            try
            {
                DateTime?result = null;
                try
                {
                    result = UtcEpoch.AddMilliseconds(Convert.ToInt64(value));
                }
                catch (FormatException notUTC)
                {
                    Debug.WriteLine("date not in UTC epoch. trying builtin DateTime conversion.");
                    try
                    {
                        result = Convert.ToDateTime(value);
                    }
                    catch (FormatException notDateTime)
                    {
                        Debug.WriteLine("Date not properly formated. Skipping. Value = " + value.ToString());
                    }
                }

                return(result);
            }
            catch (FormatException e)
            {
                return(null);
            }
        }
示例#7
0
        /// <summary>
        ///     Creates and returns an instance of int type for the given
        ///     input value.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns>int</returns>
        public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            object result = null;
            int    length = value.Length;

            if ((length > 0))
            {
                char          firstChar = value[0];
                StringBuilder buffy     = new StringBuilder(length + 4); // includes room for "Type"

                if (char.IsLower(firstChar))
                {
                    buffy.Append(char.ToUpper(firstChar));
                    if (length > 1)
                    {
                        buffy.Append(value, 1, length - 1);
                    }
                }
                else
                {
                    buffy.Append(value);
                }

                buffy.Append("Type");

                result = TypeRegistry.ScalarTypes.SimpleName[buffy.ToString()];
            }
            return(result);
        }
示例#8
0
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
        {
            Object result = null;
            try
            {
                double x = 0, y = 0, width = 0, height = 0;
                string[] values = value.Split(' ');

                if (values.Length > 1)
                {
                    x = double.Parse(values[0]);
                    y = double.Parse(values[1]);
                }

                if (values.Length > 3)
                {
                    width = double.Parse(values[2]);
                    height = double.Parse(values[3]);
                }

                result = new Rect(x, y, width, height);
            }
            catch (ArgumentNullException e) { }
            catch (ArgumentException e) { }

            return result;
        }
示例#9
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            Object result = null;
            try
            {
                ParsedUri baseUri = null;
                if(scalarUnmarshallingContext != null)
                    baseUri = scalarUnmarshallingContext.UriContext;

                result = baseUri != null ? new ParsedUri(baseUri, value) : new ParsedUri(value);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message + " :: " + value);
            }
            return result;
        }
示例#10
0
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            string hex = value.Replace("#", "");

            bool hasAlpha = (hex.Length >= 8);
            try
            {
                var intValue = Convert.ToUInt32(hex, 16);
                if (!hasAlpha)
                    intValue += 0xff000000;

                return Color.FromArgb(Convert.ToByte((intValue & 0xff000000) >> 24), Convert.ToByte((intValue & 0x00ff0000) >> 16), Convert.ToByte((intValue & 0x0000ff00) >> 8), Convert.ToByte(intValue & 0x000000ff));
            }
            catch (Exception)
            {
                return (value.StartsWith("rgb")) ? RgbToBrush(value) : ColorStringToBrush(value);
            }
        }
示例#11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <param name="formatStrings"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            Object result = null;

            try
            {
                ParsedUri baseUri = null;
                if (scalarUnmarshallingContext != null)
                {
                    baseUri = scalarUnmarshallingContext.UriContext;
                }

                result = baseUri != null ? new ParsedUri(baseUri, value) : new ParsedUri(value);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message + " :: " + value);
            }
            return(result);
        }
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }

            MetadataScalarType result = null;
            String             simpleName;

            if (value != null && value.StartsWith("Metadata"))
            {
                simpleName = value;
            }
            else
            {
                if ("int".Equals(value) || "Int".Equals(value))
                {
                    value = "Integer";  // be flexible about integer types
                }
                int length = value.Length;

                StringBuilder buffy = new StringBuilder(length + 18);   // includes room for "Metadata" & "Type"
                buffy.Append("Metadata");
                char firstChar = value[0];
                if (char.IsLower(firstChar))
                {
                    buffy.Append(char.ToUpper(firstChar));
                    if (length > 1)
                    {
                        buffy.Append(value, 1, length - 1);
                    }
                }
                else
                {
                    buffy.Append(value);
                }
                simpleName = buffy.ToString();
            }
            return((MetadataScalarType)TypeRegistry.ScalarTypes[simpleName]);
        }
示例#13
0
        public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            string hex = value.Replace("#", "");

            bool hasAlpha = (hex.Length >= 8);

            try
            {
                var intValue = Convert.ToUInt32(hex, 16);
                if (!hasAlpha)
                {
                    intValue += 0xff000000;
                }

                return(Color.FromArgb(Convert.ToByte((intValue & 0xff000000) >> 24), Convert.ToByte((intValue & 0x00ff0000) >> 16), Convert.ToByte((intValue & 0x0000ff00) >> 8), Convert.ToByte(intValue & 0x000000ff)));
            }
            catch (Exception)
            {
                return((value.StartsWith("rgb")) ? RgbToBrush(value) : ColorStringToBrush(value));
            }
        }
示例#14
0
 public abstract override object GetInstance(String value, String[] formatStrings,
                                             IScalarUnmarshallingContext scalarUnmarshallingContext);
        public override bool SetField(object context, FieldInfo field, string valueString, string[] format, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            if (valueString == null || string.IsNullOrWhiteSpace(valueString))
                return true;
            bool result = false;

            object valueObject = valueScalarType.GetInstance(valueString, format, scalarUnmarshallingContext);
            if (valueObject != null)
            {
                Object metadataScalarContext = field.GetValue(context);
                if (metadataScalarContext == null)
                {
                    Type t = field.FieldType;
                    metadataScalarContext = Activator.CreateInstance(t,new object[]{valueObject});
                    field.SetValue(context, metadataScalarContext);
                }
                else
                    ValueField.SetValue(metadataScalarContext, valueObject);
                result = true;
            }
            return result;
        }
示例#16
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return Convert.ToBoolean(value);
 }
示例#17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(String value, String[] formatStrings,
                                    IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(StorageFile.GetFileFromPathAsync(value).GetResults());
 }
示例#18
0
 public Object GetValueInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(OperativeScalarType.GetInstance(value, formatStrings, scalarUnmarshallingContext));
 }
示例#19
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(String value, String[] formatStrings,
                                    IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(new FileInfo(value));
 }
示例#20
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return value;
 }
示例#21
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     return Type.GetType(value);
 }
示例#22
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="unmarshallingContext"></param>
 /// <returns></returns>
 public abstract object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext);
示例#23
0
 /// <summary>
 ///     Creates and returns an instance of a float type for the supplied type
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <returns>float</returns>
 public override object GetInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(float.Parse(value));
 }
示例#24
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(new MetadataBoolean(GetValueInstance(value, formatStrings, scalarUnmarshallingContext)));
 }
示例#25
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(Convert.ToBoolean(value));
 }
示例#26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <param name="field"></param>
        /// <param name="valueString"></param>
        /// <param name="format"></param>
        /// <param name="scalarUnmarshallingContext"></param>
        /// <returns></returns>
        public override Boolean SetField(Object context, FieldInfo field, String valueString, String[] format, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            Boolean returnValue = false;

            if (valueString == null)
            {
                returnValue = true;
            }
            else
            {
                Enum referenceObject;

                try
                {
                    referenceObject = XmlTools.CreateEnumeratedType(field, valueString);
                    if (referenceObject != null)
                    {
                        field.SetValue(context, referenceObject);
                        returnValue = true;
                    }
                }
                catch (System.Exception e)
                {
                    SetFieldError(field, valueString, e);
                }
            }
            return(returnValue);
        }
示例#27
0
        /// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="formatStrings"></param>
/// <param name="scalarUnmarshallingContext"></param>
/// <returns></returns>
        public override object GetInstance(String value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            throw new NotImplementedException();
        }
 public Object GetValueInstance(String value, String[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return OperativeScalarType.GetInstance(value, formatStrings, scalarUnmarshallingContext);
 }
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return new MetadataDouble(GetValueInstance(value, formatStrings, scalarUnmarshallingContext));
 }
示例#30
0
        public override bool SetField(object context, FieldInfo field, string valueString, string[] format, IScalarUnmarshallingContext scalarUnmarshallingContext)
        {
            if (valueString == null || string.IsNullOrWhiteSpace(valueString))
            {
                return(true);
            }
            bool result = false;

            object valueObject = valueScalarType.GetInstance(valueString, format, scalarUnmarshallingContext);

            if (valueObject != null)
            {
                Object metadataScalarContext = field.GetValue(context);
                if (metadataScalarContext == null)
                {
                    Type t = field.FieldType;
                    metadataScalarContext = Activator.CreateInstance(t, new object[] { valueObject });
                    field.SetValue(context, metadataScalarContext);
                }
                else
                {
                    ValueField.SetValue(metadataScalarContext, valueObject);
                }
                result = true;
            }
            return(result);
        }
示例#31
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     throw new NotImplementedException("Cannot instantate a Field type");
 }
示例#32
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     throw new NotImplementedException("Cannot instantate a Field type");
 }
示例#33
0
 /// <summary>
 ///     Sets the value of the field in the context
 /// </summary>
 /// <param name="context"></param>
 /// <param name="field"></param>
 /// <param name="valueString"></param>
 /// <param name="format"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public virtual Boolean SetField(Object context, String valueString, String[] format,
                                 IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return(SetField(context, default(FieldInfo), valueString, format, scalarUnmarshallingContext));
 }
示例#34
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     byte[] bytes = System.Convert.FromBase64String(value);
     return new MemoryStream(bytes);
 }
示例#35
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="value"></param>
 /// <param name="formatStrings"></param>
 /// <param name="scalarUnmarshallingContext"></param>
 /// <returns></returns>
 public override object GetInstance(String value, String[] formatStrings,
     IScalarUnmarshallingContext scalarUnmarshallingContext)
 {
     return StorageFile.GetFileFromPathAsync(value).GetResults();
 }
示例#36
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     return(Type.GetType(value));
 }
示例#37
0
 public abstract override object GetInstance(String value, String[] formatStrings,
                                             IScalarUnmarshallingContext scalarUnmarshallingContext);
示例#38
0
 public override object GetInstance(string value, string[] formatStrings, IScalarUnmarshallingContext unmarshallingContext)
 {
     byte[] bytes = System.Convert.FromBase64String(value);
     return(new MemoryStream(bytes));
 }