Scriban Template Engine обновляет глобальную переменную - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь использовать шаблон Scriban. Итак, в основном я пытаюсь обновить значение для каждого ключа.

string bodytext = "{{status = ""}}
{{ for service in services }}
       {{ service.key }} {{status}} {{$counter = 0}}{{for subService in service.value}}{{ if $counter >= 0; "\n\t"; end ; $counter = $counter + 1 ;}} {{$counter}}.{{ subService.key }}: {{ subService.value }} {{if status == "" ; status = subService.value ; else if subService.value == "[\"Degraded\"]"; status = "Degraded"; else if subService.value == "[\"Unhealthy\"]";status = "Unhealthy";else if subService.value == "[\"Healthy\"]"; status = "Healthy"; end ;}} {{ end }} 
{{ end }}"

Dictionary<string, List<string>> subServiceDict = new Dictionary<string, List<string>>();
var template2 = Template.Parse(bodyText);
Console.WriteLine(template2.Render(parameters));

вывод также почти правильный, но не совсем нужный. где UserManagement исходит от первого l oop в службах и базовой базе данных, Ping исходит от второго l oop.

UserManagement
     1.Base Database: ["Healthy"]
     2.Ping: ["Healthy", "Ping is OK!"]
     
   ConfigurationManagement Degraded
     1.Ping: ["Healthy", "Ping is OK!"]
     2.Configuration Database: ["Degraded"]

Мне нужно улучшить две вещи. 1.Как вы можете видеть ConfigurationManagement Degraded , это Degraded значение исходит из определения статуса переменной в основном тексте. но я хочу напечатать ту же переменную и для UserManagement. В настоящее время он не печатается. Итак, в основном для каждой службы он должен печатать.

2. В настоящее время он печатается как 1.Base Database: ["Healthy"], поэтому вместо этого мы можем печатать Healthy. Я имею в виду, что 1.Base Database: Healthy and like this 2.Ping: Healthy (Ping is OK!)?

Надеюсь, мой вопрос ясен. Будем признательны за любые запросы. С уважением

...