Example #1
0
        private JNode PrepareSaveBundle(IEnumerable <IEntity> entitiesToSave, SaveOptions saveOptions)
        {
            var jn = new JNode();

            jn.AddArray("entities", entitiesToSave.Select(e => EntityToJNode(e)));
            jn.AddJNode("saveOptions", saveOptions);
            return(jn);
        }
Example #2
0
        private JNode BuildEntityAspectNode(EntityAspect entityAspect)
        {
            var nc         = entityAspect.EntityManager.MetadataStore.NamingConvention;
            var jn         = new JNode();
            var entityType = entityAspect.EntityType;

            jn.AddPrimitive("entityTypeName", entityType.NameOnServer);
            jn.AddEnum("entityState", entityAspect.EntityState);
            jn.AddPrimitive("defaultResourceName", entityType.DefaultResourceName);
            jn.AddJNode("originalValuesMap", BuildOriginalValuesMapNode(entityAspect, nc));
            var agkType = entityType.AutoGeneratedKeyType;

            if (agkType != AutoGeneratedKeyType.None)
            {
                var agkNode = new JNode();
                agkNode.AddPrimitive("propertyName", entityType.KeyProperties[0].Name);
                agkNode.AddEnum("autoGeneratedKeyType", agkType);
                jn.AddJNode("autoGeneratedKey", agkNode);
            }
            return(jn);
        }
 JNode IJsonSerializable.ToJNode(Object config)
 {
     lock (_structuralTypes) {
         var jo = new JNode();
         jo.AddPrimitive("metadataVersion", MetadataVersion);
         // jo.Add("name", this.Name);
         // jo.AddPrimitive("namingConvention", this.NamingConvention.Name);
         jo.AddJNode("namingConvention", this.NamingConvention);
         // jo.AddProperty("localQueryComparisonOptions", this.LocalQueryComparisonOptions);
         jo.AddArray("dataServices", this._dataServiceMap.Values);
         jo.AddArray("structuralTypes", this._structuralTypes);
         jo.AddMap("resourceEntityTypeMap", this._resourceNameEntityTypeMap.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Name));
         return(jo);
     }
 }
Example #4
0
        private JNode DataToJNode(StructuralAspect aspect)
        {
            var jn    = new JNode();
            var stype = aspect.StructuralType;

            stype.DataProperties.ForEach(dp => {
                var val = aspect.GetValue(dp.Name);
                // handle nonscalar dps
                if (dp.IsComplexProperty)
                {
                    jn.AddJNode(dp.NameOnServer, DataToJNode(((IComplexObject)val).ComplexAspect));
                }
                else
                {
                    jn.AddPrimitive(dp.NameOnServer, val, TypeFns.GetDefaultValue(dp.DataType.ClrType));
                }
            });
            return(jn);
        }
Example #5
0
        private JNode DataToJNode(StructuralAspect aspect)
        {
            var jn    = new JNode();
            var stype = aspect.StructuralType;

            stype.DataProperties.ForEach(dp => {
                var val = aspect.GetValue(dp.Name);
                // handle nonscalar dps
                if (dp.IsComplexProperty)
                {
                    jn.AddJNode(dp.NameOnServer, DataToJNode(((IComplexObject)val).ComplexAspect));
                }
                else
                {
                    // always add the val even if equal to the default
                    jn.AddPrimitive(dp.NameOnServer, val);
                }
            });
            return(jn);
        }