示例#1
0
 public static string VersionString(this Models.Schema schema)
 {
     return(StringBuilderPool.Scoped(sb =>
     {
         sb.Append(schema?.Namespace ?? Constants.Schema.DefaultNamespace);
     }));
 }
示例#2
0
 public static string Prefix(this Models.Schema schema, string ns = null)
 {
     return(StringBuilderPool.Scoped(sb =>
     {
         sb.Append(ns ?? schema?.Namespace ?? Constants.Schema.DefaultNamespace);
     }));
 }
示例#3
0
        public static IEnumerable <Models.Schema> GetOneToMany(this Models.Schema schema,
                                                               Dictionary <string, Models.Schema> map)
        {
            var self = schema.FullTypeString();

            foreach (var property in schema.Properties)
            {
                if (property.Rel != PropertyRelationship.OneToMany)
                {
                    continue;
                }

                var propertyTypeString = property.FullTypeString(map, true);

                foreach (var entry in map)
                {
                    var candidate = entry.Value.FullTypeString();
                    if (self == candidate)
                    {
                        continue;
                    }

                    if (candidate == propertyTypeString)
                    {
                        yield return(entry.Value);
                    }
                }
            }
        }
示例#4
0
 public static string FullTypeString(this Models.Schema schema, string ns = null)
 {
     return(Pooling.StringBuilderPool.Scoped(sb =>
     {
         sb.Append(ns ?? schema?.Namespace ?? Constants.Schemas.DefaultNamespace);
         sb.Append('.').Append(schema.TypeString());
     }));
 }
示例#5
0
        public void ImportSchemaData(Models.Schema schema, IEnumerable <IDictionary <string, object> > data)
        {
            var dataCollection = schema.GetCollection();

            dataCollection.InsertBatch(data.Select(it => (new TextContent(it)
            {
                Repository = schema.Repository.Name
            }).ToBsonDocument()));
        }
示例#6
0
        public override void Update(Models.Schema @new, Models.Schema old)
        {
            base.Update(@new, old);

            try
            {
                SchemaManager.Update(@new, old);
            }
            catch
            {
            }
        }
示例#7
0
        public override void Update(Models.Schema @new, Models.Schema old)
        {
            base.Update(@new, old);

            try
            {
                SchemaManager.Update(@new, old);
            }
            catch (SqlCeException e)
            {
            }
        }
示例#8
0
 public Schema(Models.Schema schema, ApiOptions options) : base(options)
 {
     this.EdmSchema = schema;
     this.AddEnums(schema.EnumTypes);
     this.AddComplexes(schema.ComplexTypes);
     this.AddEntities(schema.EntityTypes);
     this.AddCallables(schema.Functions);
     this.AddCallables(schema.Actions);
     foreach (var container in schema.EntityContainers)
     {
         this.Containers.Add(new Angular.Container(container, options));
     }
 }
示例#9
0
        public static string Prefix(this Models.Schema schema, string ns = null)
        {
            return(StringBuilderPool.Scoped(sb =>
            {
                sb.Append(ns ?? schema?.Self?.Namespace ?? Constants.Schema.DefaultNamespace);
                var version = schema?.Self?.Version ?? 0;
                if (version == 0)
                {
                    return;
                }

                sb.Append($".V{version}");
            }));
        }
示例#10
0
        public static string FullTypeString(this Models.Schema schema, string ns = null)
        {
            return(StringBuilderPool.Scoped(sb =>
            {
                sb.Append(ns ?? schema?.Self?.Namespace ?? Constants.Schema.DefaultNamespace);
                if (schema?.Self?.Version != 0)
                {
                    var version = schema?.Self?.Version ?? 0;
                    if (version != 0)
                    {
                        sb.Append(".V").Append(version);
                    }
                }

                sb.Append('.').Append(schema.TypeString());
            }));
        }
        private SchemaResponse GetSchemaResponse(Models.Schema schema)
        {
            if (schema == null)
            {
                return(null);
            }

            var result = schema.ToDomain();

            if (schema.Meta != null)
            {
                result.Meta = schema.Meta.ToDomain();
            }

            result.Attributes = GetAttributes(schema);
            return(result);
        }
示例#12
0
        public void ImportSchemaData(Models.Schema schema, IEnumerable <IDictionary <string, object> > data)
        {
            var ret = data.Select(it => new TextContent(it)
            {
                Repository = schema.Repository.GetBucketName()
            });

            if (ret.Count() > 0)
            {
                var bucket = schema.Repository.GetClient();

                //导入站点不用PersistTo
                ret.ForEach((it, index) =>
                {
                    bucket.Store(StoreMode.Add, it.UUID, it.ToJson());
                });
            }
        }
示例#13
0
        public static string VersionString(this Models.Schema schema)
        {
            return(StringBuilderPool.Scoped(sb =>
            {
                sb.Append(schema?.Self?.Namespace ?? Constants.Schema.DefaultNamespace);
                if (schema?.Self?.Version == 0)
                {
                    return;
                }

                var version = schema?.Self?.Version ?? 0;
                if (version == 0)
                {
                    return;
                }

                sb.Append($".V{version}");
            }));
        }
        private IEnumerable <SchemaAttributeResponse> GetAttributes(Models.Schema schema)
        {
            if (schema.Attributes == null)
            {
                return(new SchemaAttributeResponse[0]);
            }

            var result = new List <SchemaAttributeResponse>();

            foreach (var attr in schema.Attributes)
            {
                var transformed = _transformers.Transform(attr);
                if (transformed == null)
                {
                    continue;
                }

                result.Add(transformed);
            }

            return(result);
        }
示例#15
0
 public static string Label(this Models.Schema schema, string ns = null)
 {
     return(schema?.Name?.Label());
 }
示例#16
0
        public IEnumerable <IDictionary <string, object> > ExportSchemaData(Models.Schema schema)
        {
            var collection = schema.GetCollection();

            return(collection.FindAll().Select(it => it.ToContent()));
        }
示例#17
0
 public IEnumerable <IDictionary <string, object> > ExportSchemaData(Models.Schema schema)
 {
     return(schema.CreateQuery().ToArray().Select(it => new Dictionary <string, object>(it)));
 }
示例#18
0
        public override void Remove(Models.Schema item)
        {
            base.Remove(item);

            SchemaManager.Delete(item);
        }
示例#19
0
 public override void Initialize(Models.Schema schema)
 {
     SchemaManager.Add(schema);
 }
示例#20
0
 public static string TypeString(this Models.Schema schema)
 {
     return($"{schema.Name.Identifier()}");
 }