コード例 #1
0
        public TemplateMetaData ShowUiAndGetTemplate(TemplateMetaData[] templates)
        {
            var templatesViewModel = templates
                .Select(t => new TemplateViewModel {DisplayName = t.Name, FullName = t.FullName})
                .ToArray();

            var selectTemplateViewModel = new SelectTemplateViewModel
            {
                Templates = templatesViewModel,
                SelectedTemplate = templatesViewModel.First()
            };

            var showDialogResult = new SelectTemplateWindow(selectTemplateViewModel).ShowDialog();

            return (showDialogResult ?? false)
                ? templates.First(t => t.FullName == selectTemplateViewModel.SelectedTemplate.FullName)
                : null;
        }
コード例 #2
0
        public void TestNoFieldsItemIsCorrectlyFormatted()
        {
            var expectedResult = $@"var itemWithNoFieldsTemplate: SinjItemDto = {{ 
    id: ""{_itemWithNoFields.Id}"",
    name: ""{_itemWithNoFields.Name}"",
    template: ""{_itemWithNoFields.TemplatePath}"",
    parent: ""{_itemWithNoFields.ParentPath}"",
    language: ""{_itemWithNoFields.Language}"",
    fields: {{}}
}}";
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Item Templates//Sinj.hbs"
            };

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _itemWithNoFields),
                expectedResult);
        }
コード例 #3
0
        public void TestModelIsCorrectlyFormatted()
        {
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Item Templates//minq.hbs"
            };

            var expectedResult = $@"[SitecoreTemplate(""{_itemWithFields.TemplateId}"")]
public class ItemWithFieldsModel : SitecoreItemModel
{{
    [SitecoreField(""Field Name 1"")]
    public string FieldName1 {{ get; set; }}

    [SitecoreField(""Field Name 2"")]
    public string FieldName2 {{ get; set; }}
}}
";

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _itemWithFields),
                expectedResult);
        }
コード例 #4
0
        public void TestModelIsCorrectlyFormatted()
        {
            var expectedResult =
                $@"[SitecoreTemplate(""{_template.Id}"")]
public class TemplateModel : SitecoreItemModel
{{
    [SitecoreField(""Field 1"")]
    public string Field1 {{ get; set; }}

    [SitecoreField(""Field 2"")]
    public string Field2 {{ get; set; }}

    [SitecoreField(""Field 3"")]
    public bool Field3 {{ get; set; }}

    [SitecoreField(""Field 4"")]
    public int Field4 {{ get; set; }}

    [SitecoreField(""Field 5"")]
    public SLink Field5 {{ get; set; }}

    [SitecoreField(""Field 6"")]
    public SMedia Field6 {{ get; set; }}
}}
";
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Template Templates//minq.hbs"
            };

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _template),
                expectedResult);

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _template),
                expectedResult);
        }
コード例 #5
0
        public void TestSubItemsAreCorrectlyFormatted()
        {
            var expectedResult = $@"var subItem1Template: SinjItemDto = {{ 
    id: ""{_subItem1.Id}"",
    name: ""{_subItem1.Name}"",
    template: ""{_subItem1.TemplatePath}"",
    parent: ""{_subItem1.ParentPath}"",
    language: ""{_subItem1.Language}"",
    fields: {{
        ""Field Name 1"": ""Field Value 1"",
        ""Field Name 2"": ""Field Value 2""
    }}
}}

var subItem2Template: SinjItemDto = {{ 
    id: ""{_subItem2.Id}"",
    name: ""{_subItem2.Name}"",
    template: ""{_subItem2.TemplatePath}"",
    parent: ""{_subItem2.ParentPath}"",
    language: ""{_subItem2.Language}"",
    fields: {{
        ""Field Name 1"": ""Field Value 1"",
        ""Field Name 2"": ""Field Value 2""
    }}
}}

";
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Item Templates//sinj-subitems.hbs"
            };

            Assert.That(new TemplateEngineService().Render(template, _itemWithSubItems),
                Is.EqualTo(expectedResult));
        }
コード例 #6
0
 public string Render(TemplateMetaData template, object data)
 {
     var source = _fileService.GetTemplateContent(template);
     
     return TemplateEngine.Compile(source)(data);
 }
コード例 #7
0
 private void CopyToClipboard(TemplateMetaData template, object item)
 {
     if (template == null || item == null) return;
     
     AppHost.Clipboard.SetText(_templateEngineService.Render(template, item));
 }
コード例 #8
0
        public void TestModelWithChildrenIsCorrectlyFormatted()
        {
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Item Templates//minq.hbs"
            };

            var expectedResult = $@"[SitecoreTemplate(""{_itemWithChildren.TemplateId}"")]
public class ItemWithChildrenModel : SitecoreItemModel
{{
    [SitecoreChildren]
    public ICollection<FirstChildModel> FirstChilds {{ get; set; }}
}}
";

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _itemWithChildren),
                expectedResult);
        }
コード例 #9
0
 public void TestNothingIsReturnedWhenTheItemHasNoFields()
 {
     var template = new TemplateMetaData
     {
         FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Item Templates//minq.hbs"
     };
     
     AssertThatTemplatesMatch(
         new TemplateEngineService().Render(template, _itemWithNoFields),
         string.Empty);
 }
コード例 #10
0
 public string GetTemplateContent(TemplateMetaData template)
 {
     return File.ReadAllText(template.FullName);
 }
コード例 #11
0
        public void TemplateWithNoSectionsNorStandardValuesFormatedCorrectly()
        {
            var template = new TemplateMetaData
            {
                FullName = "..//..//..//Sitecore.Rocks.Templates//Resources//Template Templates//copy-sinj.hbs"
            };

            var expectedResult = File.ReadAllText("..//..//Resources//sinj-template-no-sections.js");

            AssertThatTemplatesMatch(
                new TemplateEngineService().Render(template, _templateNoSectionsNorStandardValues),
                expectedResult);
        }