コード例 #1
0
ファイル: MoneyTransferService.cs プロジェクト: mesteves/CQRS
        private void MoneyTransferIsGoingToAnInternalAccount(MoneyTransfer moneyTransfer)
        {
            var account = _reportingRepository.GetByExample <AccountReport>(new { AccountNumber = moneyTransfer.TargetAccount }).First();

            _bus.Publish(new ReceiveMoneyTransferCommand(account.Id, moneyTransfer.Ammount, moneyTransfer.SourceAccount));
            _bus.Commit();
        }
コード例 #2
0
        public void ChangeAccountName()
        {
            _popupPresenter.CatchPossibleException(() =>
            {
                _bus.Publish(new ChangeAccountNameCommand(
                                 _accountDetailsReport.Id,
                                 _accountDetailsView.AccountName));

                _accountDetailsReport = new AccountDetailsReport(
                    _accountDetailsReport.Id,
                    _accountDetailsReport.ClientReportId,
                    _accountDetailsView.AccountName,
                    _accountDetailsReport.Balance,
                    _accountDetailsReport.AccountNumber);

                _accountDetailsView.EnableMenuButtons();
                _accountDetailsView.EnableDetailsPanel();
                _bus.Commit();
                SystemTimer.Trigger(LoadData).In(2000);
            });
        }
コード例 #3
0
        public void SaveNewClientName()
        {
            _popupPresenter.CatchPossibleException(() =>
            {
                _clientDetailsView.DisableSaveButton();
                if (_createNewProcess)
                {
                    _editStep            = 2;
                    _clientDetailsReport = new ClientDetailsReport(
                        _clientDetailsReport.Id,
                        _clientDetailsView.ClientName,
                        _clientDetailsReport.Street,
                        _clientDetailsReport.StreetNumber,
                        _clientDetailsReport.PostalCode,
                        _clientDetailsReport.City,
                        _clientDetailsReport.PhoneNumber);

                    _clientDetailsView.EnableAddressPanel();
                    return;
                }

                _bus.Publish(new ChangeClientNameCommand(
                                 _clientDetailsReport.Id,
                                 _clientDetailsView.ClientName));

                _clientDetailsReport = new ClientDetailsReport(
                    _clientDetailsReport.Id,
                    _clientDetailsView.ClientName,
                    _clientDetailsReport.Street,
                    _clientDetailsReport.StreetNumber,
                    _clientDetailsReport.PostalCode,
                    _clientDetailsReport.City,
                    _clientDetailsReport.PhoneNumber);

                EnableAllMenuButtons();
                _clientDetailsView.EnableOverviewPanel();
                _bus.Commit();
                SystemTimer.Trigger(LoadData).In(1000);
            });
        }
コード例 #4
0
ファイル: EventStoreUnitOfWork.cs プロジェクト: mesteves/CQRS
        public void Commit()
        {
            _domainEventStorage.BeginTransaction();

            foreach (var eventProvider in _eventProviders)
            {
                _domainEventStorage.Save(eventProvider);
                _bus.Publish(eventProvider.GetChanges().Select(x => (object)x));
                eventProvider.Clear();
            }
            _eventProviders.Clear();

            _bus.Commit();
            _domainEventStorage.Commit();
        }