Esempio n. 1
0
 private void DeserialiseItems(Model.PropertyDefinition propertyDefinition, Model.Property property, XmlReader reader)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             if (string.Compare(propertyDefinition.CollectionItemSerialisationName, reader.Name, true) == 0)
             {
                 Model.PropertyValue propertyValue = new Model.PropertyValue();
                 propertyValue.Value = reader.ReadInnerXml();
                 if (property.Values == null)
                 {
                     property.Values = new List <Model.PropertyValue>();
                 }
                 property.Values.Add(propertyValue);
             }
         }
     }
 }
Esempio n. 2
0
        public void Serialise(JsonWriter writer, Model.TPropertyDataType dataType, Model.PropertyValue item)
        {
            switch (dataType)
            {
            case Model.TPropertyDataType.NotSet:
                break;

            case Model.TPropertyDataType.String:
                writer.WriteValue(item.Value);
                break;

            case Model.TPropertyDataType.Boolean:
                writer.WriteValue(item.ValueAsBoolean());
                break;

            case Model.TPropertyDataType.Integer:
                writer.WriteValue(item.ValueAsInt64());
                break;

            case Model.TPropertyDataType.Float:
                writer.WriteValue(item.ValueAsDouble());
                break;

            case Model.TPropertyDataType.DateTime:
                writer.WriteValue(item.ValueAsDateTime());
                break;

            case Model.TPropertyDataType.Opaque:
                writer.WriteValue(item.Value);
                break;

            case Model.TPropertyDataType.Object:
                break;

            default:
                break;
            }
        }
Esempio n. 3
0
        private void Deserialise(JsonReader reader)
        {
            Model.PropertyDefinition propertyDefinition = null;
            Model.Property           property           = null;
            bool isID = false;

            while (reader.Read())
            {
                switch (reader.State)
                {
                case TJsonReaderState.NotSet:
                    break;

                case TJsonReaderState.Array:
                    break;

                case TJsonReaderState.BOF:
                    break;

                case TJsonReaderState.Boolean:
                    if (propertyDefinition != null)
                    {
                        Model.PropertyValue propertyValue = new Model.PropertyValue(reader.AsBoolean.ToString());
                        if (propertyDefinition.IsCollection)
                        {
                            if (property.Values == null)
                            {
                                property.Values = new List <Model.PropertyValue>();
                            }
                            property.Values.Add(propertyValue);
                        }
                        else
                        {
                            property.Value = new Model.PropertyValue(propertyValue.Value);
                        }
                    }
                    break;

                case TJsonReaderState.EndArray:
                    propertyDefinition = null;
                    break;

                case TJsonReaderState.EndObject:
                    break;

                case TJsonReaderState.EOF:
                    break;

                case TJsonReaderState.Member:
                    if (reader.Text.Equals("Links"))
                    {
                        Links = new List <Link>();
                        Links.Deserialise(reader);
                    }
                    else
                    {
                        propertyDefinition = ObjectDefinition.GetPropertyBySerialisationName(reader.Text);
                        if (propertyDefinition == null)
                        {
                            isID = string.Compare(reader.Text, "InstanceID", true) == 0;
                        }
                        else
                        {
                            isID     = false;
                            property = new Model.Property();
                            property.PropertyDefinitionID = propertyDefinition.PropertyDefinitionID;
                            property.PropertyID           = propertyDefinition.PropertyID;
                            if (_Resource != null)
                            {
                                _Resource.Properties.Add(property);
                            }
                        }
                    }
                    break;

                case TJsonReaderState.Null:
                    break;

                case TJsonReaderState.Number:
                    if (propertyDefinition != null)
                    {
                        Model.PropertyValue propertyValue = new Model.PropertyValue(reader.Text);
                        if (propertyDefinition.IsCollection)
                        {
                            if (property.Values == null)
                            {
                                property.Values = new List <Model.PropertyValue>();
                            }
                            property.Values.Add(propertyValue);
                        }
                        else
                        {
                            property.Value = new Model.PropertyValue(propertyValue.Value);
                        }
                    }
                    break;

                case TJsonReaderState.Object:
                    if (_Resource == null)
                    {
                        _Resource = new Model.Object();
                        _Resource.ObjectDefinitionID = ObjectDefinition.ObjectDefinitionID;
                        _Resource.ObjectID           = ObjectDefinition.ObjectID;
                    }
                    break;

                case TJsonReaderState.String:
                    if (propertyDefinition == null)
                    {
                        if (isID)
                        {
                            _Resource.InstanceID = reader.Text;
                        }
                    }
                    else
                    {
                        string text;
                        if (propertyDefinition.DataType == Model.TPropertyDataType.DateTime)
                        {
                            text = GetDateTimeString(reader.Text);
                        }
                        else
                        {
                            text = reader.Text;
                        }
                        Model.PropertyValue propertyValue = new Model.PropertyValue(text);
                        if (propertyDefinition.IsCollection)
                        {
                            if (property.Values == null)
                            {
                                property.Values = new List <Model.PropertyValue>();
                            }
                            property.Values.Add(propertyValue);
                        }
                        else
                        {
                            property.Value = new Model.PropertyValue(propertyValue.Value);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 4
0
 private void DeserialiseItems(Model.PropertyDefinition propertyDefinition, Model.Property property, XmlReader reader)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             if (string.Compare(propertyDefinition.CollectionItemSerialisationName, reader.Name, true) == 0)
             {
                 Model.PropertyValue propertyValue = new Model.PropertyValue();
                 propertyValue.Value = reader.ReadInnerXml();
                 if (property.Values == null)
                     property.Values = new List<Model.PropertyValue>();
                 property.Values.Add(propertyValue);
             }
         }
     }
 }
Esempio n. 5
0
 private void Deserialise(JsonReader reader)
 {
     Model.PropertyDefinition propertyDefinition = null;
     Model.Property property = null;
     bool isID = false;
     while (reader.Read())
     {
         switch (reader.State)
         {
             case TJsonReaderState.NotSet:
                 break;
             case TJsonReaderState.Array:
                 break;
             case TJsonReaderState.BOF:
                 break;
             case TJsonReaderState.Boolean:
                 if (propertyDefinition != null)
                 {
                     Model.PropertyValue propertyValue = new Model.PropertyValue(reader.AsBoolean.ToString());
                     if (propertyDefinition.IsCollection)
                     {
                         if (property.Values == null)
                             property.Values = new List<Model.PropertyValue>();
                         property.Values.Add(propertyValue);
                     }
                     else
                     {
                         property.Value = new Model.PropertyValue(propertyValue.Value);
                     }
                 }
                 break;
             case TJsonReaderState.EndArray:
                 propertyDefinition = null;
                 break;
             case TJsonReaderState.EndObject:
                 break;
             case TJsonReaderState.EOF:
                 break;
             case TJsonReaderState.Member:
                 if (reader.Text.Equals("Links"))
                 {
                     Links = new List<Link>();
                     Links.Deserialise(reader);
                 }
                 else
                 {
                     propertyDefinition = ObjectDefinition.GetPropertyBySerialisationName(reader.Text);
                     if (propertyDefinition == null)
                     {
                         isID = string.Compare(reader.Text, "InstanceID", true) == 0;
                     }
                     else
                     {
                         isID = false;
                         property = new Model.Property();
                         property.PropertyDefinitionID = propertyDefinition.PropertyDefinitionID;
                         property.PropertyID = propertyDefinition.PropertyID;
                         if (_Resource != null)
                             _Resource.Properties.Add(property);
                     }
                 }
                 break;
             case TJsonReaderState.Null:
                 break;
             case TJsonReaderState.Number:
                 if (propertyDefinition != null)
                 {
                     Model.PropertyValue propertyValue = new Model.PropertyValue(reader.Text);
                     if (propertyDefinition.IsCollection)
                     {
                         if (property.Values == null)
                             property.Values = new List<Model.PropertyValue>();
                         property.Values.Add(propertyValue);
                     }
                     else
                     {
                         property.Value = new Model.PropertyValue(propertyValue.Value);
                     }
                 }
                 break;
             case TJsonReaderState.Object:
                 if (_Resource == null)
                 {
                     _Resource = new Model.Object();
                     _Resource.ObjectDefinitionID = ObjectDefinition.ObjectDefinitionID;
                     _Resource.ObjectID = ObjectDefinition.ObjectID;
                 }
                 break;
             case TJsonReaderState.String:
                 if (propertyDefinition == null)
                 {
                     if (isID)
                         _Resource.InstanceID = reader.Text;
                 }
                 else
                 {
                     string text;
                     if (propertyDefinition.DataType == Model.TPropertyDataType.DateTime)
                     {
                         text = GetDateTimeString(reader.Text);
                     }
                     else
                     {
                         text = reader.Text;
                     }
                     Model.PropertyValue propertyValue = new Model.PropertyValue(text);
                     if (propertyDefinition.IsCollection)
                     {
                         if (property.Values == null)
                             property.Values = new List<Model.PropertyValue>();
                         property.Values.Add(propertyValue);
                     }
                     else
                     {
                         property.Value = new Model.PropertyValue(propertyValue.Value);
                     }
                 }
                 break;
             default:
                 break;
         }
     }
 }