/// <summary> /// 環境変数をセットする /// </summary> /// <remarks> /// 環境変数をセットする。 /// 通常スコープの場合はゾーンチェンジに消去される。 /// グローバルスコープの場合はアプリケーションの実行中、常に保持される。</remarks> /// <param name="name">変数名</param> /// <param name="value">値</param> /// <param name="global">グローバルスコープか?</param> public void SetVar( string name, object value, bool global = false) => TimelineExpressionsModel.SetVariable( name, value, global ? TimelineModel.GlobalZone : this.Zone);
private static IEnumerable <TextCommand> CreateExpressionsCommands() { var setCommand = new TextCommand( (string logLine, out Match match) => { match = null; if (!logLine.ContainsIgnoreCase(TimelineCommand)) { return(false); } match = SetVarCommandRegex.Match(logLine); return(match.Success); }, (string logLine, Match match) => { if (match == null || !match.Success) { return; } var name = match.Groups["name"].ToString(); var value = match.Groups["value"].ToString(); var option = match.Groups["option"]?.ToString() ?? string.Empty; var zone = TimelineController.CurrentController?.CurrentZoneName ?? string.Empty; option = option.ToLower(); if (option.ContainsIgnoreCase("global")) { zone = TimelineModel.GlobalZone; } else { if (option.ContainsIgnoreCase("temp")) { zone = string.Empty; } } TimelineExpressionsModel.SetVariable(name, value, zone); }); return(new[] { setCommand }); }
/// <summary> /// 一時変数をセットする /// </summary> /// <remarks> /// タイムラインのリセット時に消去される一時変数をセットする</remarks> /// <param name="name">変数名</param> /// <param name="value">値</param> public void SetTemp( string name, object value) => TimelineExpressionsModel.SetVariable( name, value);