示例#1
0
        protected IMoBiCommand AddFormulaToFormulaCacheAndSetOnStartValue <TFormula>(TBuildingBlock startValuesBuildingBlock, TStartValue startValue, IParameter referenceParameter)
            where TFormula : IFormula
        {
            var macroCommand = new MoBiMacroCommand
            {
                CommandType = AppConstants.Commands.AddCommand,
                Description = AppConstants.Commands.AddFormulaToBuildingBlock,
                ObjectType  = _interactionTaskContext.GetTypeFor <TFormula>()
            };

            var newFormula = _moBiFormulaTask.CreateNewFormula <TFormula>(startValue.Dimension);

            macroCommand.AddCommand(new AddFormulaToFormulaCacheCommand(startValuesBuildingBlock, newFormula).Run(Context));

            if (!_moBiFormulaTask.EditNewFormula(newFormula, macroCommand, startValuesBuildingBlock, referenceParameter))
            {
                return(CancelCommand(macroCommand));
            }

            macroCommand.Add(SetFormula(startValuesBuildingBlock, startValue, newFormula));
            return(macroCommand);
        }