Ejemplo n.º 1
0
        protected override void PerformExecuteWith(IExecutionContext context)
        {
            var parameterTask = context.Resolve <IParameterTask>();

            var allRelativeExpressionParameters = _parameter.AllRelatedRelativeExpressionParameters();

            var relNormExpressions = parameterTask.GroupExpressionParameters(allRelativeExpressionParameters);

            double max = relNormExpressions.Keys.Select(x => x.Value).Max();

            foreach (var parameter in relNormExpressions.KeyValues)
            {
                var parameterNorm = parameter.Value;
                var newValue      = max == 0 ? 0 : parameter.Key.Value / max;
                if (ValueComparer.AreValuesEqual(parameterNorm.Value, newValue))
                {
                    continue;
                }

                new SetParameterValueCommand(parameterNorm, newValue).Execute(context);
            }
        }
Ejemplo n.º 2
0
 private double getRelativeExpressionValue(double newNormalizedValue, IParameter relativeExpressionParameter)
 {
     return(relativeExpressionParameter.AllRelatedRelativeExpressionParameters().Where(x => !x.IsExpressionNorm()).Max(x => x.Value) * newNormalizedValue);
 }