Exemple #1
0
        public void TestParse_TestFile01()
        {
            var definition = TemplateDefinitionHelper.Parse("TemplateDefinition\\TestFile01.xml");

            Assert.IsNotNull(definition);

            Assert.AreEqual(2, definition.Placeholders.Length);

            Assert.AreEqual("MODULE1", definition.Placeholders[0].Name);
            Assert.AreEqual("Hello World", definition.Placeholders[0].Description);
            Assert.AreEqual("123,456,788", definition.Placeholders[0].SuggestionList);
            Assert.AreEqual("123", definition.Placeholders[0].DefaultValue);

            Assert.AreEqual("MODULE2", definition.Placeholders[1].Name);
            Assert.AreEqual(null, definition.Placeholders[1].Description);
            Assert.AreEqual(null, definition.Placeholders[1].SuggestionList);
            Assert.AreEqual(null, definition.Placeholders[1].Description);
        }
Exemple #2
0
        public override async Task <bool> OnNavigatedToAsync(IProgress <string> progress, StepContext ctx)
        {
            if (!IsTargetDirectoryValid(ctx))
            {
                return(false);
            }

            var templateDefinitionFile = Path.Combine(ctx.TargetDirectory, "TemplateDefinition.xml");

            if (!File.Exists(templateDefinitionFile))
            {
                return(false);
            }

            var templateDefinition = await Task.Run(() => TemplateDefinitionHelper.Parse(templateDefinitionFile));

            if (templateDefinition == null)
            {
                return(false);
            }

            try
            {
                File.Delete(templateDefinitionFile);
            }
            catch (Exception ex)
            {
                theLogger.Error($"Unable to delete template definition file: '{templateDefinitionFile}'.", ex);
            }

            foreach (var placeholderDefinition in templateDefinition.Placeholders)
            {
                var placeholder = new PlaceholderViewModel()
                {
                    Name          = placeholderDefinition.Name,
                    TextToReplace = string.IsNullOrEmpty(placeholderDefinition.TextToReplace)
                        ? placeholderDefinition.Name
                        : placeholderDefinition.TextToReplace,
                    Replacement = placeholderDefinition.DefaultValue,
                    Suggestions = TemplateDefinitionHelper.SplitEscapedString(placeholderDefinition.SuggestionList),
                    Description = placeholderDefinition.Description
                };

                placeholder.PropertyChanged += (s, e) =>
                {
                    foreach (var example in Examples)
                    {
                        example.UpdateText(Placeholders);
                    }
                };

                Placeholders.Add(placeholder);
            }

            foreach (var example in templateDefinition.Examples ?? new Example[0])
            {
                Examples.Add(new ExampleViewModel(example));
            }

            return(true);
        }