Шаблон запускающий другие шаблоны. (C#)

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Помогите пожалуйста разобраться что я не так делаю.
Пишу шаблон, управляющий запуском шаблонов по имени в ZennoPoster.exe.


Руководствовался этим

Вроде бы всё правильно сделал, но шаблоны не запускаются.

coddde.png


Шаблон прилагаю Посмотреть вложение TaskManager.xmlz
 

bigcajones

Client
Регистрация
09.02.2011
Сообщения
1 216
Благодарностей
681
Баллы
113
This should work...

Код:
var searchName = project.Variables["site"].Value;
var searchResult = false;

// get the task list from the ZennoPoster
var tasks = ZennoPoster.TasksList;
foreach (var tsk in tasks)
{
	// loading Xml documnt with task content
    var doc = new System.Xml.XmlDocument();
    doc.LoadXml("<Task>" + tsk + "</Task>");

    // Search task by name
    var nameElement = doc.SelectSingleNode("Task/Name");
    if(nameElement == null) continue;
    var name = nameElement.InnerText;
    // if we found our task
    if (name == searchName)
    {
        // take task id
        var idElement = doc.SelectSingleNode("Task/Id");
        if (idElement == null) continue;
        var id = Guid.Parse(idElement.InnerText);

		// take execution settings element
        var esElement = doc.SelectSingleNode("Task/ExecutionSettings");
        if (esElement == null) continue;

		// take limit of threads of the task
        var threadsElement = doc.SelectSingleNode("Task/ExecutionSettings/NumberOfTries");
        if (threadsElement == null) continue;
		
		// change the value
        threadsElement.InnerText = "3";

		// set new settings
        ZennoPoster.SetExecutionSettings(id, esElement.InnerXml);
		
			
		
        searchResult = true;
        break;
    }
}
if (!searchResult)
	throw new Exception("Task " + searchName + " not found!");
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
Я, конечно, не уверен... но вы точно уверены в том что в цикле у вас знак > стоит в нужную сторону....
как бе... это же условие, при котром продолжается выполнение цикла... а оно у вас еще при старте нарушено... поидее...

2) И вот щас пробую это все построить - Если упростить
for (int i = -1; i < listCount; i++)
{
tasksList;
Тут стартовое значение i -1, а в массиве tasklist все начинается с 0

3) Еще вызывают сомнение следующие моменты
node = doc.SelectSingleNode(xpath);
if (node != null)
{
result = node.InnerXml;
}
return result;

result это строка или число, а вы ему xml пихаете, врать не буду не вникал что там кому и что передает - но отладичк ругаеццо)))
ну даже если бы и не ругался, этот ретурн прерывает выполнение постановки задачи... Вообще у меня есть подозрение что задумывалось так
node = doc.SelectSingleNode(xpath);
if (node == null)
{
result = node.InnerXml;
return "все пропало";
}

ну а в остальном... у меня заработало))))

Пы.Сы. Эх)) буржуи опередили)))
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Thank you, bigcajones!
 
  • Спасибо
Реакции: bigcajones

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 538
Баллы
113
Ребята, у меня такой вопрос:
Из примера bigcajones видно, что мы управляем шаблоном, название которого в переменной var searchName = project.Variables["site"].Value;
А как указать, что это текущая таска, не зная её?

Или как мне получить имя таски, чтобы я мог положить её в переменную var searchName = project.Variables["site"].Value;
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 705
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)