Ejemplo n.º 1
0
		public void ChangeValues()
		{
			IConfigParameter<int> param1 = new Int32Parameter("int32");
			Assert.AreEqual(0, param1.Value);
			param1.SetValue(2);
			Assert.AreEqual(2, param1.Value);

			IConfigParameter<string> param2 = new StringParameter("string");
			Assert.AreEqual(null, param2.Value);
			param2.SetValue("yyy");
			Assert.AreEqual("yyy", param2.Value);

			IConfigParameter<TimeSpan> param3 = new TimeSpanParameter("timespan");
			Assert.AreEqual(TimeSpan.Zero, param3.Value);
			param3.SetValue(TimeSpan.FromDays(1.5));
			Assert.AreEqual(TimeSpan.FromDays(1.5), param3.Value);
		}
 /// <summary>
 /// Registers a new completion scriptblock
 /// </summary>
 /// <param name="Name">The name of the completion scriptblock</param>
 /// <param name="ScriptBlock">The scriptblock that will provide completion data</param>
 /// <param name="Mode">What completion mode to use</param>
 /// <param name="CacheDuration">How long the gathered pieces of data remain valid.</param>
 /// <param name="Global">Whether to globalize scriptblocks prior to invocation.</param>
 /// <param name="PassThru">Parameter is ignored. Needed to have a second signature that returns the script container.</param>
 public static ScriptContainer RegisterCompletion(string Name, ScriptBlock ScriptBlock, TeppScriptMode Mode, TimeSpanParameter CacheDuration, bool Global, bool PassThru)
 {
     RegisterCompletion(Name, ScriptBlock, Mode, CacheDuration, Global);
     return(Scripts[Name]);
 }
        /// <summary>
        /// Registers a new completion scriptblock
        /// </summary>
        /// <param name="Name">The name of the completion scriptblock</param>
        /// <param name="ScriptBlock">The scriptblock that will provide completion data</param>
        /// <param name="Mode">What completion mode to use</param>
        /// <param name="CacheDuration">How long the gathered pieces of data remain valid.</param>
        /// <param name="Global">Whether to globalize scriptblocks prior to invocation.</param>
        public static void RegisterCompletion(string Name, ScriptBlock ScriptBlock, TeppScriptMode Mode, TimeSpanParameter CacheDuration, bool Global)
        {
            ScriptContainer script = new ScriptContainer();

            script.Name                = Name;
            script.LastDuration        = new TimeSpan(-1);
            script.LastResultsValidity = CacheDuration;
            script.Global              = Global;

            TeppScriptMode effectiveMode = Mode;

            if (effectiveMode == TeppScriptMode.Auto)
            {
                effectiveMode = TeppScriptMode.Full;
                if (((ScriptBlock.Ast as ScriptBlockAst) != null) && ((ScriptBlockAst)ScriptBlock.Ast).ParamBlock == null)
                {
                    effectiveMode = TeppScriptMode.Simple;
                }
            }

            if (effectiveMode == TeppScriptMode.Full)
            {
                script.ScriptBlock = ScriptBlock;
            }
            else
            {
                script.ScriptBlock      = ScriptBlock.Create(_SimpleCompletionScript.Replace("<name>", Name));
                script.InnerScriptBlock = ScriptBlock;
            }
            Scripts[Name] = script;
        }