コード例 #1
0
ファイル: ThenSetVariable.cs プロジェクト: synfron/Reshaper
        private void SetValue(EventInfo eventInfo, string replacementText)
        {
            Variables variables = null;

            switch (TargetSource)
            {
            case VariableSource.Channel:
                variables = eventInfo.Variables;
                break;

            case VariableSource.Global:
                variables = Self.Variables;
                break;
            }
            if (variables != null)
            {
                IVariable <string> variable = variables.GetOrDefault <string>(VariableName.GetText(eventInfo.Variables)) ?? variables.Add <string>(VariableName.GetText(eventInfo.Variables));
                if (DestinationIdentifier != null && DestinationMessageValueType != MessageValueType.Text && variable?.Value != null)
                {
                    switch (DestinationMessageValueType)
                    {
                    case MessageValueType.Json:
                        variable.Value = variable.Value.SetJsonValue(DestinationIdentifier.GetText(eventInfo.Variables), replacementText);
                        break;

                    case MessageValueType.Xml:
                        variable.Value = variable.Value.SetXmlValue(DestinationIdentifier.GetText(eventInfo.Variables), replacementText);
                        break;
                    }
                }
                else
                {
                    variable.Value = replacementText;
                }
            }
        }