Example #1
0
        private async Task GetTopNAndRespond(Update update, int N)
        {
            var counters = await _counterDao.GetCountersWithLimit(update.Message.Chat.Id, N);

            var userId = update.Message.From.Id;

            var userCounters =
                await Task.WhenAll(counters.Select(async(c) => new
            {
                User    = await _userDao.GetUserById(c.userId),
                Counter = c.counter
            }));

            var result = userCounters.Select(uc =>
                                             ((object)(uc.User != null ? uc.User.FirstName + " " + uc.User.LastName : "%Unknown%"), (object)uc.Counter)
                                             ).ToList();

            var table = TableGenerator.GenerateTable("person", "words", result);

            await _client.SendTextMessageAsync(
                update.Message.Chat.Id,
                "<pre>" + table + "</pre>",
                replyToMessageId : update.Message.MessageId,
                parseMode : ParseMode.Html);
        }
Example #2
0
        public void TestOracleTableWithTrigger()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.Oracle);
            var table  = schema.AddTable("Test");
            var id     = table.AddColumn <int>("Id").AddPrimaryKey();

            id.IsAutoNumber = true;
            table.AddColumn <string>("Name").AddLength(200);
            table.Triggers.Add(new DatabaseTrigger
            {
                Name         = "Test_INS_TRG",
                TriggerEvent = "INSERT",
                TriggerBody  = @"BEGIN
  SELECT ""Test_SEQ"".NEXTVAL INTO :NEW.""Id"" FROM DUAL;
END;",
                TriggerType  = "BEFORE EACH ROW",
            });
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("\"Id\" NUMBER (9) NOT NULL,"), "Table should include Id column " + ddl);
            //line breaks may cause environmental differences
            Assert.IsTrue(ddl.Contains(@"CREATE OR REPLACE TRIGGER ""Test_INS_TRG"""), "Table should include 'create trigger' " + ddl);
            Assert.IsTrue(ddl.Contains(@"SELECT ""Test_SEQ"".NEXTVAL INTO :NEW.""Id"" FROM DUAL;"), "Table should include trigger body " + ddl);
        }
Example #3
0
        static void Main(string[] args)
        {
            UWP uwp = new UWP();

            uwp.Atmosphere.Value = 7;
            uwp.Hydro.Value      = 7;
            uwp.Size.Value       = 7;
            int  tsize   = 2;
            bool cepheus = true;

            foreach (string arg in args)
            {
                if (arg.Length > 0)
                {
                    if (arg[0].ToString().Equals("/"))
                    {
                        if (arg.Length > 1)
                        {
                            tsize = int.Parse(arg[1].ToString());
                            if (tsize != 1 && tsize != 2)
                            {
                                throw new ArgumentException("Invalid table size");
                            }
                        }
                    }
                    else
                    {
                        // it's a UPP
                        if (arg.Length > 0)
                        {
                            uwp.Size.Value = int.Parse(arg[0].ToString(), System.Globalization.NumberStyles.HexNumber);
                        }
                        if (arg.Length > 1)
                        {
                            uwp.Atmosphere.Value = int.Parse(arg[1].ToString(), System.Globalization.NumberStyles.HexNumber);
                        }
                        if (arg.Length > 2)
                        {
                            uwp.Hydro.Value = int.Parse(arg[2].ToString(), System.Globalization.NumberStyles.HexNumber);
                        }
                    }
                }
            }

            if (!cepheus)
            {
                TableGenerator table = new TableGenerator();
                table.Generate(tsize, uwp);
                table.WriteStreamAsText(Console.Out);
            }
            else
            {
                var tg     = new Cepheus.TableGenerator();
                var tables = tg.Generate(tsize, uwp);
                foreach (var t in tables)
                {
                    t.WriteStreamAsText(Console.Out);
                }
            }
        }
Example #4
0
        public SimulateData()
        {
            InitializeComponent();
            setupUI();
            genetictable = new TableGenerator(this.tableGeneticModel);
            traitTable   = new TableGenerator(this.panelTableContainer);
            popInfoTable = new TableGenerator(this.tableDataPrecentage);
            //set the format of the dates
            this.btnNext.MouseClick += BtnNext_MouseClick;
            this.btnBack.MouseClick += BtnBack_MouseClick;
            this.comboBoxTrait.SelectedIndexChanged += ComboBoxTrait_SelectedIndexChanged;
            popInfoTable.AmountOfRowsChanged        += PopInfoTable_AmountOfRowsChanged;
            generateGeneticTable();
            generatePopInfoTable();

            SetDateTimeFormat();

            /*
             * DataGeneratorPresentor dgp = new DataGeneratorPresentor();
             * dgp.DefineChromosomeLength();
             * dgp.DefineChromosomePositions();
             * dgp.DefineParentalHaplotypes();
             * dgp.SimulateRecombination();
             * dgp.DefineQTL();
             */
        }
Example #5
0
        public Table AddTable <T>(string tableName)
        {
            var table = TableGenerator.GetTable(typeof(T), tableName);

            Add(table);
            return(table);
        }
Example #6
0
        public Table AddTable <T>(string tableName, ILocalizationStore localizationStore)
        {
            var table = TableGenerator.GetTable(typeof(T), tableName, localizationStore);

            Add(table);
            return(table);
        }
Example #7
0
        public virtual void SaveToXML(XmlElement objOrbit)
        {
            var nfi = System.Globalization.NumberFormatInfo.InvariantInfo;

            var xePlanet = objOrbit.OwnerDocument.CreateElement("Planet");

            objOrbit.AppendChild(xePlanet);
            Common.CreateTextNode(xePlanet, "Type", PlanetType.ToString());
            Common.CreateTextNode(xePlanet, "Dense", Dense.ToString());
            Common.CreateTextNode(xePlanet, "Mass", Mass.ToString());
            Common.CreateTextNode(xePlanet, "Gravity", Grav.ToString());
            Common.CreateTextNode(xePlanet, "Pressure", Pressure.ToString());
            Common.CreateTextNode(xePlanet, "MaxPop", Maxpop.ToString());
            Common.CreateTextNode(xePlanet, "OrbitRange", OrbitRange.ToString());
            Common.CreateTextNode(xePlanet, "OrbitNumber", OrbitNumber.ToString());
            Common.CreateTextNode(xePlanet, "Tilt", Tilt.ToString());
            Common.CreateTextNode(xePlanet, "Ecc", Ecc.ToString());
            Common.CreateTextNode(xePlanet, "Rotation", Rotation.ToString());
            Common.CreateTextNode(xePlanet, "TidallyLocked", TidallyLocked.ToString());
            Common.CreateTextNode(xePlanet, "Temp", Temp.ToString());
            Common.CreateTextNode(xePlanet, "Diameter", Diameter.ToString());
            Common.CreateTextNode(xePlanet, "NumSats", Satellites.Count.ToString());
            Common.CreateTextNode(xePlanet, "Mainworld", MainWorld.ToString());
            Common.CreateTextNode(xePlanet, "NormalUWP", Normal.DisplayString(PlanetType, Diameter));
            Common.CreateTextNode(xePlanet, "CollapseUWP", Collapse.DisplayString(PlanetType, Diameter));
            Common.CreateTextNode(xePlanet, "Life", Life.ToString());
            Common.CreateTextNode(xePlanet, "LifeFactor", LifeFactor.ToString());
            Common.CreateTextNode(xePlanet, "Name", Name);

            var xeChild = objOrbit.OwnerDocument.CreateElement("Temperature");

            for (var i = 0; i < (Constants.NUM_HEX_ROWS * 2) - 1; i += 2)
            {
                var xeTemp = objOrbit.OwnerDocument.CreateElement("Row" + (i / 2 + 1).ToString());

                Common.CreateTextNode(xeTemp, "Summer", Summer[i].ToString("N", nfi) + "/" + Summer[i + 1].ToString("N", nfi));
                Common.CreateTextNode(xeTemp, "Fall", Fall[i].ToString("N", nfi) + "/" + Fall[i + 1].ToString("N", nfi));
                Common.CreateTextNode(xeTemp, "Winter", Winter[i].ToString("N", nfi) + "/" + Winter[i + 1].ToString("N", nfi));

                xeChild.AppendChild(xeTemp);
            }

            xePlanet.AppendChild(xeChild);

            if (Life)
            {
                xeChild = objOrbit.OwnerDocument.CreateElement("AnimalEncounters");
                TableGenerator.WriteToXML(xeChild);
                xePlanet.AppendChild(xeChild);
            }

            Normal.SaveToXML(xePlanet);
            Collapse.SaveToXML(xePlanet);

            foreach (var satellite in Satellites)
            {
                satellite.SaveToXML(xePlanet);
            }
        }
Example #8
0
 public LLkParser(TableGenerator tg, IEnumerable <Token> input)
 {
     _tg       = tg;
     _input    = input.GetEnumerator();
     _stack    = new Stack <_Entry>();
     _nodeType = LLNodeType.Initial;
     _current  = new List <Token>();
 }
Example #9
0
        private TokenTableSet GenerateTable(int size, string alphabet)
        {
            var generator = new TableGenerator(new GeneratorSettings {
                Size = size, CharacterString = alphabet
            });

            return(generator.Generate());
        }
        private TokenTableSet GenerateTable(int size, string alphabet, bool includeSpaces, bool includePunctuation, bool includeSpecialCharacters)
        {
            var generator = new TableGenerator(new GeneratorSettings {
                Size = size, CharacterString = alphabet, IncludeSpaces = includeSpaces, IncludePunctuation = includePunctuation, IncludeSpecialCharacters = includeSpecialCharacters
            });

            return(generator.Generate());
        }
        public FileResult Post(List <IFormFile> files)
        {
            List <Model> Models = new List <Model>();
            long         size   = files.Sum(f => f.Length);

            try
            {
                var filePath = Path.GetTempFileName();

                foreach (var formFile in files)
                {
                    if (formFile.Length > 0)
                    {
                        using (var reader = new StreamReader(formFile.OpenReadStream()))
                        {
                            string text = reader.ReadToEnd();
                            reader.Dispose();

                            string[] models = text.Split(new string[] { "class" }, StringSplitOptions.None);

                            for (int i = 1; i < models.Length; i++)
                            {
                                Model m = new Model(models[i], "Test");

                                Models.Add(m);
                            }
                        }
                    }
                }

                string fileName = "Project.txt";
                byte[] bytes    = new byte[0];

                MemoryStream ms = new MemoryStream();
                TextWriter   tw = new StreamWriter(ms);

                List <string> downloads = new List <string>();
                foreach (Model m in Models)
                {
                    tw.WriteLine(APIControllerGenerator.Generate(m));
                    tw.WriteLine(RepositoryGenerator.Generate(m));
                    tw.WriteLine(ServiceGenerator.Generate(m));
                    tw.WriteLine(TableGenerator.Generate(m, Models));
                }

                tw.Flush();
                bytes = ms.ToArray();
                ms.Dispose();

                return(File(bytes, "application/x-msdownload", fileName));
            }
            catch (Exception ex)
            {
                return(File("", ""));
            }
        }
Example #12
0
        /// <summary>
        /// Creates one record in the table, and applies the customDefinitions action to the record
        /// to specify values explicity.
        /// </summary>
        /// <example>
        /// var dataFactory = new DataFactory("myConfiguredConnection");
        ///
        /// var generatedData = dataFactory.CreateOne("dbo.MyTable", t => {
        ///     t.WithValue("MyColumn", "ABCDE");
        /// });
        ///
        /// // Print the id
        /// Console.WriteLine(generatedData["Id"]);
        /// </example>
        /// <param name="tableName">Table's name to create a record.</param>
        /// <returns>A dictionary including all generated values for this record, including their Id.</returns>
        public IDictionary <string, object> CreateOne(string tableName, Action <FactoryDefinition> customDefinitions)
        {
            TableGenerator tableGenerator = new TableGenerator(_databaseDialect, tableName);

            var generatedValues = tableGenerator.GenerateValues(customDefinitions);

            _tearDownStack.Push(() => tableGenerator.TearDown());

            return(generatedValues);
        }
Example #13
0
        public static void Main(string[] args)
        {
            var           cfg = new CfgDocument();
            ParserHandler pn  = new ParserHandler();

            // S -> a A a a
            cfg.Rules.Add(new CfgRule("S", "a", "A", "a", "a"));

            // S -> b A b a
            cfg.Rules.Add(new CfgRule("S", "b", "A", "b", "a"));

            // A ->
            cfg.Rules.Add(new CfgRule("A"));

            // A -> b
            cfg.Rules.Add(new CfgRule("A", "b"));
            Console.WriteLine(cfg.ToString());

            cfg.RebuildCache();             // faster if we do it this way
            var msgs      = cfg.TryValidate();
            var hasErrors = false;

            foreach (var msg in msgs)
            {
                Console.Error.WriteLine(msg);
                if (ErrorLevel.Error == msg.ErrorLevel)
                {
                    hasErrors = true;
                }
            }
            if (hasErrors)
            {
                return;
            }


            pn.statusText = "ok";
            pn.cfg        = cfg;
            pn.finish();
            var tg = new TableGenerator();

            tg.construct(cfg, 2);
            Debug.Assert(3 == tg.Tcounter, "Test failed");
            Debug.Assert(string.Join(" ", tg.LLksf) == "T:S,{} T:A,{a:a} T:A,{b:a}", "Test failed");
            Debug.Assert(string.Join(" ", tg.PT.fif) == "T0 T1 T2 :a :b |$", "Test failed");
            Debug.Assert(string.Join(" ", tg.PT.sif) == "a:a a:b a b:a b:b b ", "Test failed");
            Debug.Assert(6 == tg.PT.field.Count, "Test failed");
            for (var i = 0; i < tg.PT.field.Count; ++i)
            {
                var fld = tg.PT.field[i];
                Debug.Assert(7 == fld.Count, "Test failed");
            }

            return;
        }
        public void SelectAndUpdateStringContainCustomWhere()
        {
            const string customWhere = "table_name='second'";
            var          dialect     = new MsSql2005Dialect();
            var          tg          = new TableGenerator();

            tg.Configure(NHibernateUtil.Int64, new Dictionary <string, string> {
                { "where", customWhere }
            }, dialect);
            Assert.That(selectSql.GetValue(tg).ToString(), Is.StringContaining(customWhere));
            Assert.That(updateSql.GetValue(tg).ToString(), Is.StringContaining(customWhere));
        }
    private void Awake()
    {
        var parameter = SceneLoader.GetParam("difficulty");

        if (parameter != "")
        {
            TileCount = System.Int32.Parse(parameter);
        }

        generator   = new TableGenerator(TileCount * TileCount * 10);
        gameManager = FindObjectOfType <GameManager> ();
    }
Example #16
0
        public void CanSerliaiseTable()
        {
            var serialiser = new Serialisation();
            var generator  = new TableGenerator(new GeneratorSettings {
                CharacterString = Alphabet.English, Size = 1000
            });
            var table        = generator.Generate();
            var result       = serialiser.Serliaise(table);
            var key          = table.ForwardTable[0].Keys.ToList()[0];
            var expectedText = "{\"ForwardTable\":{\"columns\":[{\"rows\":[{\"f\":" + (int)key + ",\"t\":" + (int)table.ForwardTable[0][key].Item1 + ",\"n\":" + table.ForwardTable[0][key].Item2 + "},";

            Assert.IsTrue(result.Contains(expectedText));
        }
Example #17
0
        public void PartialRow()
        {
            var headers = new string[] { "h1", "h2", "h3" };
            var table   = new string[][][]
            {
                new string[][]
                {
                    new string[] { "c1", "c2" }
                }
            };

            Console.WriteLine(TableGenerator.Generate(headers, table, OutputFormat.Txt));
        }
Example #18
0
        protected virtual bool DoAreas(string rawParameters, params CommandParameter[] parameters)
        {
            TableGenerator <IArea> generator = new TableGenerator <IArea>("Areas");

            generator.AddColumn("Name", 30, area => area.DisplayName, TableGenerator <IArea> .AlignLeftFunc);
            generator.AddColumn("Min", 5, area => area.MinLevel.ToString());
            generator.AddColumn("Max", 5, area => area.MaxLevel.ToString());
            generator.AddColumn("Builders", 15, area => area.Builders, TableGenerator <IArea> .AlignLeftFunc);
            generator.AddColumn("Credits", 40, area => area.Credits, TableGenerator <IArea> .AlignLeftFunc);
            StringBuilder sb = generator.Generate(DependencyContainer.Instance.GetInstance <IWorld>().Areas);

            Page(sb);
            return(true);
        }
Example #19
0
        public void CanCompressATokenTableAndDecompressIt()
        {
            var compressor = new Compression();
            var serialiser = new Serialisation();
            var generator  = new TableGenerator(new GeneratorSettings {
                CharacterString = Alphabet.English, Size = 1000
            });
            var table      = generator.Generate();
            var serialised = serialiser.Serliaise(table);
            var result     = compressor.Compress(serialised);

            Assert.IsTrue(serialised.Length > result.Length);
            result = compressor.Decompress(result);
            Assert.AreEqual(serialised, result);
        }
Example #20
0
        public void TestSqlServerTableWithIdentity()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.SqlServer);
            var table  = schema.AddTable("Test")
                         .AddColumn <int>("Id").AddIdentity()
                         .AddColumn <string>("Name").AddLength(200)
                         .Table;
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("[Id] INT IDENTITY(1,1)  NOT NULL"));
        }
Example #21
0
        public void Cepheus1D6TableTest()
        {
            UWP uwp = new UWP();

            uwp.Atmosphere.Value = 7;
            uwp.Hydro.Value      = 7;
            uwp.Size.Value       = 7;

            var tg     = new TableGenerator();
            var tables = tg.Generate(1, uwp);

            foreach (var t in tables)
            {
                t.WriteStreamAsText(Console.Out);
            }
        }
Example #22
0
        private void Button1_Click_1(object sender, EventArgs e)
        {
            LoadingSpinner ls = new LoadingSpinner(this, AppMessages.messages["data_save"]);

            try
            {
                ls.show();
                ExcelReader excelReader = new ExcelReader();
                excelReader.saveExcelFromDataGridView(
                    new DataGridView[2] {
                    dataGridView1, dataGridView2
                },
                    new int[2] {
                    1, 2
                },
                    new string[2] {
                    "Sales Forecast", "Cost Of Sales"
                }
                    );

                TableGenerator tbl = new TableGenerator();
                tbl.GenerateMultipleTable(new DataGridView[2] {
                    dataGridView1, dataGridView2
                }, "sales_forecast_table.rtf", new string[2] {
                    "Sales Forecast", "Cost Of Sales"
                });
                ChartGenerator cgr = new ChartGenerator();
                cgr.generateBarChart(dataGridView1, "generate.png", "Forecast Sales");
                cgr.ImageToRtf("sales_forecast_table.rtf", "generate.png");
                cgr.generateBarChart(dataGridView2, "generate1.png", "Cost of Sales");
                cgr.ImageToRtf("sales_forecast_table.rtf", "generate1.png");
                Label       l    = mw.Controls.Find("label4", true)[0] as Label;
                ProgressBar pbar = mw.Controls.Find("progressBar1", true)[0] as ProgressBar;
                dgp.updateProgress("sales_forecast_table.rtf", dataGridView1.Rows.Count > 0 && dataGridView2.Rows.Count > 0 ? 1 : 0);
                l.Text     = dgp.completedSteps().ToString() + " /";
                pbar.Value = dgp.completedSteps();
                l.Refresh();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception: " + ex.Message);
            }
            finally
            {
                ls.hide();
            }
        }
Example #23
0
        static void Main(string[] args)
        {
            var        name   = "t_to_gen.json";
            FileReader reader = new FileReader();

            reader.Read(name);
            var emuns = EnumsGenerator.Generate(reader.enumerators);
            var table = TableGenerator.Generate(EnumsGenerator.arrays, "SimpleTable");

            Console.WriteLine(table);

            using (var textWriter = new StreamWriter(name + "asdas", false, Encoding.ASCII))
            {
                textWriter.WriteLine(emuns);
                textWriter.WriteLine(table);
            }
        }
Example #24
0
        public void TestSqlServerConversionTableWithIdentity()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.SqlServer);
            var table  = schema.AddTable("Test")
                         .AddColumn <int>("Id").AddPrimaryKey().AddIdentity()
                         .AddColumn <string>("Name").AddLength(200)
                         .Table;
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("\"Id\" NUMBER (9) NOT NULL,"));
            Assert.IsTrue(ddl.Contains(@"CREATE OR REPLACE TRIGGER "), "Creates a trigger");
        }
        public void TestSqlServerCeTableWithIdentity()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.SqlServerCe);
            var table  = schema.AddTable("Test")
                         .AddColumn <int>("Id").AddIdentity().AddPrimaryKey()
                         .AddColumn <string>("Name").AddLength(200)
                         .Table;
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("GO")); //batch separators
            Assert.IsFalse(ddl.Contains(";")); //valid but useless in SqlServer CE because you can't batch
        }
Example #26
0
        public void TestOracle12TableWithIdentityAutoNumber()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.Oracle);
            var table  = schema.AddTable("Test")
                         .AddColumn <int>("Id").AddPrimaryKey().AddIdentity()
                         .AddColumn <string>("Name").AddLength(200)
                         .Table;
            var tableGen = new TableGenerator(table);

            //acts
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("\"Id\" NUMBER (9) NOT NULL GENERATED AS IDENTITY"));
            Assert.IsFalse(ddl.Contains(@"CREATE OR REPLACE TRIGGER "));
        }
Example #27
0
        public void TestSqlServerTableWithTableDescription()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.SqlServer);
            var table  = schema.AddTable("Test");

            table.Description = "This is the table's description";
            table.AddColumn <int>("Id").AddPrimaryKey();
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("EXEC sys.sp_addextendedproperty"));
            Assert.IsTrue(ddl.Contains("'This is the table''s description'"));
        }
Example #28
0
 private void Button1_Click(object sender, EventArgs e)
 {
     if (validateData())
     {
         LoadingSpinner ls = new LoadingSpinner(this, AppMessages.messages["data_save"]);
         try
         {
             ls.show();
             ExcelReader excelReader = new ExcelReader();
             excelReader.saveExcelFromDataGridView(
                 new DataGridView[1] {
                 dataGridView1
             },
                 new int[1] {
                 1
             },
                 new string[1] {
                 "Market Analysis"
             }
                 );
             TableGenerator tbl = new TableGenerator();
             tbl.Generate(dataGridView1, "market_analysis.rtf");
             ChartGenerator cgen = new ChartGenerator();
             cgen.generatePieChart(dataGridView1, "generated.png", "Market Analysis");
             cgen.ImageToRtf("market_analysis.rtf", "generated.png");
             Label       l    = mw.Controls.Find("label4", true)[0] as Label;
             ProgressBar pbar = mw.Controls.Find("progressBar1", true)[0] as ProgressBar;
             dgp.updateProgress("market_analysis.rtf", dataGridView1.Rows.Count > 0 ? 1 : 0);
             l.Text     = dgp.completedSteps().ToString() + " /";
             pbar.Value = dgp.completedSteps();
             l.Refresh();
         }
         catch (Exception ex)
         {
             MessageBox.Show("Exception: " + ex.Message);
         }
         finally
         {
             ls.hide();
         }
     }
     else
     {
         MessageBox.Show("Percentage cannot exceed 100 !");
     }
 }
Example #29
0
    public static void Generate(string resPath, string outFilePath)
    {
        Assert.IsTrue(!string.IsNullOrEmpty(resPath));
        Assert.IsTrue(!string.IsNullOrEmpty(outFilePath) && outFilePath.EndsWith(".cs"));

        int start = outFilePath.LastIndexOf('/') + 1;
        int end = outFilePath.LastIndexOf(".cs");
        string className = outFilePath.Substring(start, end - start);
        string contents = new TableGenerator(resPath, className).Generate();

        byte[] data = Encoding.UTF8.GetBytes(contents);
        using (FileStream writer = File.Create(outFilePath, data.Length))
        {
            writer.Write(data, 0, data.Length);
            Debug.Log("Created: " + outFilePath);
        }
    }
        public void ApplyTable(OpenApiSchema schema, SchemaFilterContext context, TableGenerator table)
        {
            ApplyTableProperties(schema, context.Type, context, table);
            var baseType = context.Type.BaseType;

            while (baseType?.IsGenericType ?? false)
            {
                ApplyTableProperties(schema, baseType, context, table);
                baseType = baseType.BaseType;
            }

            if (!context.Type.IsAbstract)
            {
                var itemType = DBTable.GetItemTypeAttribute(context.Type);
                schema.Extensions.Add("x-type-id", new OpenApiInteger(itemType?.Attribute.Id ?? 0));
                if (context.Type == table.ItemType)
                {
                    var mapping = new Dictionary <string, string>();
                    foreach (var type in table.Types)
                    {
                        var itemTypeAttribute = DBTable.GetItemTypeAttribute(type);
                        if (itemTypeAttribute != null)
                        {
                            var itemTypeSchema = context.SchemaGenerator.GenerateSchema(type, context.SchemaRepository);
                            mapping.Add(itemTypeAttribute.Attribute.Id.ToString(), itemTypeSchema.Reference.ReferenceV3);
                        }
                    }
                    if (mapping.Count > 0)
                    {
                        schema.Discriminator = new OpenApiDiscriminator
                        {
                            PropertyName = table.TypeKey.PropertyName
                        };
                        schema.Discriminator.Mapping["0"] = $"#/components/schemas/{context.Type.Name}";
                        foreach (var mapItem in mapping)
                        {
                            schema.Discriminator.Mapping[mapItem.Key] = mapItem.Value;
                        }
                    }
                }
            }
            else
            {
                schema.Extensions.Add("x-type-id", new OpenApiInteger(-1));
            }
        }
Example #31
0
        public void TestSqlServerTableWithSequenceAutoNumber()
        {
            //arrange
            var schema = new DatabaseSchema(null, SqlType.SqlServer);
            var table  = schema.AddTable("Test");
            var id     = table.AddColumn <int>("Id").AddPrimaryKey();

            id.DefaultValue = "NEXT VALUE FOR [MySequence]";
            id.IsAutoNumber = true; //but id.IdentityDefinition == null
            table.AddColumn <string>("Name").AddLength(200);
            var tableGen = new TableGenerator(table);

            //act
            var ddl = tableGen.Write();

            //assert
            Assert.IsTrue(ddl.Contains("[Id] INT NOT NULL DEFAULT NEXT VALUE FOR [MySequence]"));
        }
        public void SetUp()
        {
            _tags = MockRepository.GenerateStub<ITagGenerator<MyModel>>();
            _generator = new TableGenerator<MyModel>(_tags);

            _data = new MyModel[]
                           {
                               new MyModel {Foo = new FooClass(), Bar = new BarClass(), Woo = "woo", Number = 1, NotUsed = 2},
                               new MyModel {Foo = new FooClass(), Bar = new BarClass(), Woo = "woohoo", Number = 2, NotUsed = 3},
                               new MyModel {Foo = new FooClass(), Bar = new BarClass(), Woo = "woodeedoo", Number = 3, NotUsed = 4}
                           };

            _generator.AddColumnWithDisplayFor(_barExp);
            _generator.AddColumnWithDisplayFor(_fooExp, "this is some foo");
            _generator.AddColumnWithDisplayFor(_wooExp, new LinkTag("a link to nowhere", "http://nowhere"));
            _generator.AddColumnWithDefaultHeaderAndDisplayFor(_numberExp, tr => tr.AddClass("number"));

            _capturedModels = new List<MyModel>();
            Action<object> modelCapture = m =>
                                              {
                                                  _currentModel = m as MyModel;
                                                  _capturedModels.Add(_currentModel);
                                              };
            _capturedExpressions = new List<Expression<Func<MyModel, object>>>();
            _tags.Stub(t => t.SetModel(null)).IgnoreArguments().Do(modelCapture);
            Func<Expression<Func<MyModel, object>>, HtmlTag> df = (e) =>
                                                                      {
                                                                          _capturedExpressions.Add(e);
                                                                          var data = e.Compile().Invoke(_currentModel);
                                                                          var tag = new HtmlTag("span").Text(data.ToString());
                                                                          return tag;
                                                                      };
            Expression<Func<MyModel, object>> exp = null;
            _tags.Stub(t => t.DisplayFor(exp)).IgnoreArguments().Do(df);
        }