コード例 #1
0
        public static void GenerateStandardChild(this ITable table, Authentication authentication)
        {
            var typeCollection = table.GetService <ITypeCollection>();
            var types1         = typeCollection.Select(item => item.Name).ToArray();
            var types2         = CremaTypeUtility.GetBaseTypes();
            var allTypes       = types1.Concat(types2);
            var allKeyTypes    = types1.Concat(types2).Where(item => item != typeof(bool).GetTypeName());

            var prefixes = new string[] { "SingleKey", "DoubleKey", "TripleKey", "QuadraKey", };

            for (int i = 0; i < prefixes.Length; i++)
            {
                var query   = allKeyTypes.Permutations(i + 1);
                var keys    = query.Random();
                var columns = allTypes.Except(keys);
                table.GenerateStandardChild(authentication, "Child_" + prefixes[i], keys, columns);
            }
        }
コード例 #2
0
        public static void GenerateStandard(this ITableContext context, Authentication authentication)
        {
            var typeContext = context.GetService(typeof(ITypeContext)) as ITypeContext;
            var root        = context.Root;
            var types1      = typeContext.Types.Select(item => item.Name).ToArray();
            var types2      = CremaTypeUtility.GetBaseTypes();
            var allTypes    = types1.Concat(types2);
            var allKeyTypes = types1.Concat(types2).Where(item => item != typeof(bool).GetTypeName());

            {
                var category = root.AddNewCategory(authentication, "SingleKey");
                foreach (var item in allTypes)
                {
                    var table = category.GenerateStandardTable(authentication, "SingleKey", EnumerableUtility.AsEnumerable(item), allTypes.Where(i => i != item));
                    if (table == null)
                    {
                        continue;
                    }
                    table.GenerateStandardChild(authentication);
                    table.GenerateStandardContent(authentication);
                }

                var category1 = root.AddNewCategory(authentication, "SingleKeyRefs");
                {
                    foreach (var item in category.Tables)
                    {
                        var table1 = item.Inherit(authentication, "Ref_" + item.Name, category1.Path, false);
                        table1.GenerateStandardContent(authentication);
                    }
                }
            }

            {
                var category = root.AddNewCategory(authentication, "DoubleKey");
                var query    = allKeyTypes.Permutations(2);
                for (int i = 0; i < allTypes.Count(); i++)
                {
                    var keys    = query.Random();
                    var columns = allTypes.Except(keys);
                    var table   = category.GenerateStandardTable(authentication, "DoubleKey", keys, columns);
                    if (table == null)
                    {
                        continue;
                    }
                    table.GenerateStandardChild(authentication);
                    table.GenerateStandardContent(authentication);
                }

                var category1 = root.AddNewCategory(authentication, "DoubleKeyRefs");
                {
                    foreach (var item in category.Tables)
                    {
                        var table1 = item.Inherit(authentication, "Ref_" + item.Name, category1.Path, false);
                        table1.GenerateStandardContent(authentication);
                    }
                }
            }

            {
                var category = root.AddNewCategory(authentication, "TripleKey");
                var query    = allKeyTypes.Permutations(3);
                for (int i = 0; i < allTypes.Count(); i++)
                {
                    var keys    = query.Random();
                    var columns = allTypes.Except(keys);
                    var table   = category.GenerateStandardTable(authentication, "TripleKey", keys, columns);
                    if (table == null)
                    {
                        continue;
                    }
                    table.GenerateStandardChild(authentication);
                    table.GenerateStandardContent(authentication);
                }

                var category1 = root.AddNewCategory(authentication, "TripleKeyRefs");
                {
                    foreach (var item in category.Tables)
                    {
                        var table1 = item.Inherit(authentication, "Ref_" + item.Name, category1.Path, false);
                        table1.GenerateStandardContent(authentication);
                    }
                }
            }

            {
                var category = root.AddNewCategory(authentication, "QuadraKey");
                var query    = allKeyTypes.Permutations(4);
                for (int i = 0; i < allTypes.Count(); i++)
                {
                    var keys    = query.Random();
                    var columns = allTypes.Except(keys);
                    var table   = category.GenerateStandardTable(authentication, "QuadraKey", keys, columns);
                    if (table == null)
                    {
                        continue;
                    }
                    table.GenerateStandardChild(authentication);
                    table.GenerateStandardContent(authentication);
                }

                var category1 = root.AddNewCategory(authentication, "QuadraKeyRefs");
                {
                    foreach (var item in category.Tables)
                    {
                        var table1 = item.Inherit(authentication, "Ref_" + item.Name, category1.Path, false);
                        table1.GenerateStandardContent(authentication);
                    }
                }
            }
        }