コード例 #1
0
        public void EvaluateDeferredConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter)
        {
            GeneratedSymbolDeferredMacroConfig deferredConfig = rawConfig as GeneratedSymbolDeferredMacroConfig;

            if (deferredConfig == null)
            {
                throw new InvalidCastException("Couldn't cast the rawConfig as a GeneratedSymbolDeferredMacroConfig");
            }

            if (!deferredConfig.Parameters.TryGetValue("format", out JToken formatToken))
            {
                throw new ArgumentNullException("format");
            }
            string format = formatToken.ToString();

            bool utc;

            if (deferredConfig.Parameters.TryGetValue("utc", out JToken utcToken))
            {
                utc = utcToken.ToBool();
            }
            else
            {
                utc = false;
            }

            IMacroConfig realConfig = new NowMacroConfig(deferredConfig.VariableName, format, utc);

            EvaluateConfig(environmentSettings, vars, realConfig, parameters, setter);
        }
コード例 #2
0
ファイル: NowMacro.cs プロジェクト: ajeckmans/templating
        public IMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IMacroConfig rawConfig)
        {
            GeneratedSymbolDeferredMacroConfig deferredConfig = rawConfig as GeneratedSymbolDeferredMacroConfig;

            if (deferredConfig == null)
            {
                throw new InvalidCastException("Couldn't cast the rawConfig as a GeneratedSymbolDeferredMacroConfig");
            }

            if (!deferredConfig.Parameters.TryGetValue("format", out JToken formatToken))
            {
                throw new ArgumentNullException("format");
            }
            string format = formatToken.ToString();

            bool utc;

            if (deferredConfig.Parameters.TryGetValue("utc", out JToken utcToken))
            {
                utc = utcToken.ToBool();
            }
            else
            {
                utc = false;
            }

            IMacroConfig realConfig = new NowMacroConfig(deferredConfig.VariableName, deferredConfig.DataType, format, utc);

            return(realConfig);
        }
コード例 #3
0
        public void EvaluateNowConfig()
        {
            string         variableName = "nowString";
            string         format       = "";
            bool           utc          = true;
            NowMacroConfig macroConfig  = new NowMacroConfig(variableName, format, utc);

            IVariableCollection    variables  = new VariableCollection();
            IRunnableProjectConfig config     = new SimpleConfigModel();
            IParameterSet          parameters = new ParameterSet(config);
            ParameterSetter        setter     = MacroTestHelpers.TestParameterSetter(EngineEnvironmentSettings, parameters);

            NowMacro macro = new NowMacro();

            macro.EvaluateConfig(EngineEnvironmentSettings, variables, macroConfig, parameters, setter);
            ITemplateParameter resultParam;

            Assert.True(parameters.TryGetParameterDefinition(variableName, out resultParam));
            string   macroNowString = (string)parameters.ResolvedValues[resultParam];
            DateTime macroNowTime   = Convert.ToDateTime(macroNowString);

            TimeSpan difference = macroNowTime.Subtract(DateTime.UtcNow);

            // 10 seconds is quite a lot of wiggle room, but should be fine, and safe.
            Assert.True(difference.TotalSeconds < 10);
        }
コード例 #4
0
        public void EvaluateConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter)
        {
            NowMacroConfig config = rawConfig as NowMacroConfig;

            if (config == null)
            {
                throw new InvalidCastException("Couldn't cast the rawConfig as NowMacroConfig");
            }

            DateTime time  = config.Utc ? DateTime.UtcNow : DateTime.Now;
            string   value = time.ToString(config.Format);

            Parameter p;

            if (parameters.TryGetParameterDefinition(config.VariableName, out ITemplateParameter existingParam))
            {
                // If there is an existing parameter with this name, it must be reused so it can be referenced by name
                // for other processing, for example: if the parameter had value forms defined for creating variants.
                // When the param already exists, use its definition, but set IsVariable = true for consistency.
                p            = (Parameter)existingParam;
                p.IsVariable = true;
            }
            else
            {
                p = new Parameter
                {
                    IsVariable = true,
                    Name       = config.VariableName
                };
            }

            vars[config.VariableName] = value;
            setter(p, value);
        }
コード例 #5
0
        public void EvaluateConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter)
        {
            NowMacroConfig config = rawConfig as NowMacroConfig;

            if (config == null)
            {
                throw new InvalidCastException("Couldn't cast the rawConfig as NowMacroConfig");
            }

            DateTime  time  = config.Utc ? DateTime.UtcNow : DateTime.Now;
            string    value = time.ToString(config.Format);
            Parameter p     = new Parameter
            {
                IsVariable = true,
                Name       = config.VariableName
            };

            setter(p, value);
        }