示例#1
0
        private void OnTemplateItemChanged()
        {
            var template = new ParameterItem()
            {
                IsTemplate = true
            };

            template.PropetyChangedEvent += OnTemplateItemChanged;
            _parameterList.Add(template);
        }
示例#2
0
        public void ImportConfigFromFile(string filePath)
        {
            using (var fs = new FileStream(filePath, FileMode.Open))
            {
                using (var sr = new StreamReader(fs))
                {
                    var     content = sr.ReadToEnd();
                    JObject jObj    = JsonConvert.DeserializeObject(content) as JObject;
                    TemplateText = jObj["Template"].ToString();
                    var paramArray = jObj["Parameters"] as JArray;
                    Comment = jObj["Comment"].ToString();
                    var templateItem = ParameterList.FirstOrDefault(x => x.IsTemplate);
                    ParameterList.Clear();
                    foreach (var jItem in paramArray)
                    {
                        if (jItem["DataType"].ToString().ToLower() == "array")
                        {
                            var tempParameter = new ParameterItem()
                            {
                                PropertyName = jItem["Key"].ToString(),
                                DataType     = "Array"
                            };
                            var tempArrayItem = tempParameter.ValueList.FirstOrDefault();
                            tempParameter.ValueList.Clear();
                            tempParameter.ValueList.AddRange((jItem["Values"] as JArray).Select(x => new ArrayItem()
                            {
                                PropertyValue = x.ToString()
                            }).ToList());
                            tempParameter.ValueList.Add(tempArrayItem);
                            ParameterList.Add(tempParameter);
                        }
                        else
                        {
                            ParameterList.Add(new ParameterItem()
                            {
                                PropertyName  = jItem["Key"].ToString(),
                                PropertyValue = jItem["Value"].ToString()
                            });
                        }
                    }

                    ParameterList.Add(templateItem);
                }
            }
        }
示例#3
0
        public MainViewModel()
        {
            //var temp = JsonConvert.SerializeObject("<test>\"'/\\@#$%^&*()</asdfas>");


            TemplateText =
                @"<!-- 单属性示例 -->
Program Name: <#= P[""ProgramName""] #> 

<!-- 数组示例 -->
ConfigArray: <# foreach(var item in (P[""TestArray""] as List<string>))
        {  #> 
        - <#=item #>  <#  }  #>

<!-- 复杂数组示例 -->
ComplexArray: <# foreach(var item in (P[""ComplexArray""] as List<string>))
        { var items=item.Split(new string[] { ""|||"" }, StringSplitOptions.None);  #> 
        <config Name=""<#=items[0] #>"" Value=""<#=items[1] #>"" /> <#  }  #>

Config End;


";

            ParameterList.Add(new ParameterItem()
            {
                PropertyName = "ProgramName", PropertyValue = "TestProgramName"
            });

            var arrayParam = new ParameterItem()
            {
                PropertyName = "TestArray", DataType = "Array", PropertyValue = "AAAAA###BBBBB###CCCCC"
            };

            ParameterList.Add(arrayParam);

            var complexArray = new ParameterItem()
            {
                PropertyName = "ComplexArray", DataType = "Array", PropertyValue = "AAA|||NBB###BB|||BBB###CC|||DD"
            };

            ParameterList.Add(complexArray);

            var templateItem = new ParameterItem()
            {
                IsTemplate = true
            };

            templateItem.PropetyChangedEvent += OnTemplateItemChanged;
            ParameterList.Add(templateItem);

            RenderCommand         = new DelegateCommand <object>(OnRender);
            SaveCommand           = new DelegateCommand <object>(OnSave);
            ImportCommand         = new DelegateCommand <object>(OnImport);
            DeletePropertyCommand = new DelegateCommand <object>(obj =>
            {
                try
                {
                    if (obj is ParameterItem)
                    {
                        ParameterList.Remove(obj as ParameterItem);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            });

            if (Start.Args.Any())
            {
                ImportConfigFromFile(Start.Args.First());
            }
        }