public FinCalcViewModel(
            ILocalizationService localizationService,
            IMediator mediator,
            ICommandInvoker calculatorRemote,
            ICalculationCommandReceiver calculator,
            ISubscriptionAggregator subscriptionAggregator)
        {
            this.mediator         = mediator;
            this.calculatorRemote = calculatorRemote;
            this.calculator       = calculator;

            this.calculator.OutputText.TextChanged += this.OnOutputTextChanged;
            this.calculatorRemote.CommandExecuted  += this.OnCommandExecuted;
            this.calculatorRemote.CommandFailed    += this.OnCommandFailed;

            subscriptionAggregator.Subscribe(this);

            this.OnClearPressed();
        }
示例#2
0
        private static void SetImplementationOfCalculatorCommandObjects(out ICalculationCommandReceiver receiver, out ICommandInvoker invoker)
        {
            var commands = new List <ICalculatorCommand>();

            var tmpReceiver = new TwoOperandsCalculator(new SingleNumberOutput(), new SingleNumberInput(9));

            var assemblies = new[]
            {
                Assembly.GetAssembly(typeof(ICalculatorCommand)),
            };

            foreach (var assembly in assemblies)
            {
                assembly.GetTypes()
                .Where(type => type.BaseType == typeof(BaseCommand))
                .ToList().ForEach(commandType => commands.Add((ICalculatorCommand)Activator.CreateInstance(commandType, new object[] { tmpReceiver })));
            }

            receiver = tmpReceiver;
            invoker  = new CalculatorRemote(new CommandList(commands));
        }
 public CalculateStartCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.CalculateStart;
 }
 public GetEffectiveInterestCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.GetEffectiveInterest;
 }
 public CalculateYearsCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.CalculateYears;
 }
 public LoadMemoryValueCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.LoadMemoryValue;
 }
示例#7
0
 public SetEndCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.SetEnd;
 }
 public GetNominalInterestRateCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.GetNominalInterestRate;
 }
 public CalculateEffectiveInterestRateCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.CalculateEffectiveInterest;
 }
示例#10
0
 public SetRatesPerAnnumCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.SetRatesPerAnnum;
 }
示例#11
0
 public SetAdvanceCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.SetAdvance;
 }
 public DecimalSeparatorCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator = calculator;
     this.CommandWord = CommandWord.DecimalSeparator;
 }
示例#13
0
 public AlgebSignCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.AlgebSign;
 }
示例#14
0
 public ClearCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.Clear;
 }
 public SetRepaymentRateCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.SetRepaymentRate;
 }
示例#16
0
 public OperatorCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.Operator;
 }
示例#17
0
 public DigitCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.Digit;
 }
示例#18
0
 public CalculatePercentCommand(ICalculationCommandReceiver calculator)
 {
     this.calculator  = calculator;
     this.CommandWord = CommandWord.PercentCalculation;
 }