FreakySources.CodeDataGenerator.SubstituteData C# (CSharp) Method

SubstituteData() public method

public SubstituteData ( string source, List codeDataGeneratorParams ) : string
source string
codeDataGeneratorParams List
return string
        public string SubstituteData(string source, List<CodeDataGeneratorParam> codeDataGeneratorParams)
        {
            var result = new StringBuilder(source);
            foreach (var p in codeDataGeneratorParams)
            {
                SubstituteParam(result, p);
            }
            return result.ToString();
        }

Usage Example

Exemplo n.º 1
0
        private void btnGenerateData_Click(object sender, EventArgs e)
        {
            var selectedItemText = cmbPattern.SelectedItem.ToString();
            var codeDataGenerator = new CodeDataGenerator(GetPlatformSpecificPath(tbSourceCodeFilesFolder.Text));
            switch (selectedItemText)
            {
                case "Asciimation_1_3.cs":
                    List<CompressedFrame> compressedFrames;
                    var asciimationGenerator13 = new AsciimationDataGenerator(File.ReadAllText(Path.Combine(tbPatternsFolder.Text, "Asciimation.txt")));
                    tbInput.Text = codeDataGenerator.SubstituteData(tbInput.Text, new List<CodeDataGeneratorParam>()
                    {
                        new CodeDataGeneratorParam {
                            KeyBegin = "/*%Data_1_3*/",
                            KeyEnd = "/*Data_1_3%*/",
                            Value = '"' + asciimationGenerator13.Compress_v_1_3(out compressedFrames) + '"'
                        }
                    });
                    break;

                case "QuineClock.cs":
                    var quineClock3Generator = new QuineClockDataGenerator(File.ReadAllText(Path.Combine(tbPatternsFolder.Text, "QuineClockDigits.txt")));
                    tbInput.Text = codeDataGenerator.SubstituteData(tbInput.Text, new List<CodeDataGeneratorParam>()
                        {
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*%Digits*/",
                                KeyEnd = "/*Digits%*/",
                                Value = '"' + string.Join("\",\"", quineClock3Generator.GetDigits().Select(s => s.Replace("\\", "\\\\"))) + '"'
                            }
                        });
                    break;

                case "QuineSnake.cs":
                    var quineSnakeGenerator = new QuineSnakeGenerator();
                    tbInput.Text = codeDataGenerator.SubstituteData(tbInput.Text, new List<CodeDataGeneratorParam>()
                        {
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$FieldWidth*/",
                                KeyEnd = "/*FieldWidth$*/",
                                Value = QuineSnakeGenerator.FieldWidth.ToString(),
                                SaveKey = false
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$FieldHeight*/",
                                KeyEnd = "/*FieldHeight$*/",
                                Value = QuineSnakeGenerator.FieldHeight.ToString(),
                                SaveKey = false
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$HeadRow*/",
                                KeyEnd = "/*HeadRow$*/",
                                Value = QuineSnakeGenerator.HeadRow.ToString(),
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$HeadColumn*/",
                                KeyEnd = "/*HeadColumn$*/",
                                Value = QuineSnakeGenerator.HeadColumn.ToString(),
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$FoodRow*/",
                                KeyEnd = "/*FoodRow$*/",
                                Value = QuineSnakeGenerator.FoodRow.ToString(),
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$FoodColumn*/",
                                KeyEnd = "/*FoodColumn$*/",
                                Value = QuineSnakeGenerator.FoodColumn.ToString(),
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$NewDir*/",
                                KeyEnd = "/*NewDir$*/",
                                Value = QuineSnakeGenerator.NewDirString.ToString()
                            },
                            new CodeDataGeneratorParam
                            {
                                KeyBegin = "/*$Dirs*/",
                                KeyEnd = "/*Dirs$*/",
                                Value = QuineSnakeGenerator.DirsString
                            }
                        });
                    break;
            }
        }