Ejemplo n.º 1
0
        public void Handle(MakeDeposit message)
        {
            if (message.Amount < 0)
            {
                throw new NegativeDepositException();
            }

            Events.Publish(new DepositMade(message.AggregateId, message.Amount));
        }
        public MakeDepositResponse Post(MakeDeposit request)
        {
            if (request.DepositAmount <= 0)
            {
                throw new ArgumentException("Deposit amount must be positive", "DepositAmount");
            }

            var account = Repository.Find(request.AccountId);

            if (account == null)
            {
                throw HttpError.NotFound(string.Format("Bank account {0} not found", request.AccountId));
            }

            account.Balance += request.DepositAmount;
            Repository.Save();

            return new MakeDepositResponse { Success = true }.PopulateWith(account);
        }