Ejemplo n.º 1
0
        public void Add(Field f, string s)
        {
            if (FieldSymbolics.IsSymbolicField(f))
            {
                Add(f, FieldSymbolics.AsInteger(f, s));
                return;
            }

            Add(f, OutTranslators.ForField(f).FromString(s));
        }
Ejemplo n.º 2
0
            public override StObject FromJObject(JObject jsonObject)
            {
                var so = new StObject();

                var keys = jsonObject.GetEnumerator();

                while (keys.MoveNext())
                {
                    var key = keys.Current.Key;
                    try
                    {
                        object value    = jsonObject[key];
                        Field  fieldKey = Field.FromString(key);
                        if (fieldKey == null)
                        {
                            // TODO test for UpperCase key name
                            // warn about possibly unknown field
                            continue;
                        }

                        if (FieldSymbolics.IsSymbolicField(fieldKey) && ((JToken)value).Type == JTokenType.String)
                        {
                            value = FieldSymbolics.AsInteger(fieldKey, value.ToString());
                        }

                        if (value is JToken && ((JToken)value).Type == JTokenType.Integer)
                        {
                            so.Add(fieldKey, ((JToken)value).ToObject <int>());
                        }
                        else if (value is JToken && ((JToken)value).Type == JTokenType.String)
                        {
                            so.Add(fieldKey, ((JToken)value).ToString());
                        }
                        else
                        {
                            so.Add(fieldKey, value);
                        }
                    }
                    catch (JsonException e)
                    {
                        throw new ApplicationException("Json deserialization failed.", e);
                    }
                }
                return(Formatted(so));
            }
Ejemplo n.º 3
0
            public override JObject ToJObject(StObject obj)
            {
                var json = new JObject();

                foreach (Field f in obj)
                {
                    try
                    {
                        ISerializedType obj1       = obj[f];
                        Object          someObject = obj1.ToJson();

                        if (someObject is JToken)
                        {
                            if (FieldSymbolics.IsSymbolicField(f) && ((JToken)someObject).Type == JTokenType.Integer)
                            {
                                someObject = FieldSymbolics.AsString(f, ((JToken)someObject).ToObject <int>());
                            }

                            json.Add(Field.GetName(f), (JToken)someObject);
                        }
                        else if (FieldSymbolics.IsSymbolicField(f) && someObject is int)
                        {
                            someObject = FieldSymbolics.AsString(f, (int)someObject);
                            json.Add(Field.GetName(f), someObject.ToString());
                        }
                        else if (someObject is int)
                        {
                            json.Add(Field.GetName(f), (int)someObject);
                        }
                        else
                        {
                            json.Add(Field.GetName(f), someObject.ToString());
                        }
                    }
                    catch (JsonException e)
                    {
                        throw new ApplicationException("Json serialization failed.", e);
                    }
                }

                return(json);
            }
Ejemplo n.º 4
0
 public void TestAsInteger()
 {
     Assert.NotNull(FieldSymbolics.AsInteger(Field.LedgerEntryType, "AccountRoot"));
     Assert.AreEqual((int)'a', (int)FieldSymbolics.AsInteger(Field.LedgerEntryType, "AccountRoot"));
 }
Ejemplo n.º 5
0
 public void TestIsSymbolicField()
 {
     Assert.IsTrue(FieldSymbolics.IsSymbolicField(Field.LedgerEntryType));
 }