Иногда при реализации логики бота требуется обработать данные или выполнить вычисления с применением сложного алгоритма. Наиболее удобным и рекомендуемым вариантом является реализация внешнего API. Однако в определенных случаях намного удобнее использовать команду [Установка переменной контекста] с алгоритмом на C#.
Для реализации сложного алгоритма надо понимать каким образом формула вычисляется внутри Sherlock Platform. При реализации команды шаблон подставляется в следующую обертку:
public object EvalCode(){
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(\"en-US\");
var r = <Шаблон_команды>;
return r;
}
Таким образом, если мы задаем не просто формулу, надо выполнить ряд действий:
- В первой строке указать код ""; (или другую формулу), чтобы присвоить начальное значение переменной r.
- Далее указать необходимый алгоритм
- В конце присвоить результат переменной r.
Ниже приведен пример формулы, которая для переменной контекста #FIO# преобразует все первые символы слов к заглавным символам:
"";
string[] split = "#FIO#".Split(new Char[] { ' ' });
string name = "";
foreach (string s in split)
{
name = s.Trim();
r += Char.ToUpper(name[0]) + name.Substring(1) + ' ';
}
r = r.Trim();