Example #1
0
        public ProcessResult Process(Deposit deposit)
        {
            ProcessResultBuilder builder = new ProcessResultBuilder();

            try
            {
                if (!deposit.IsValid)
                {
                    builder.AddErrorMessage("Invalid deposit");
                }

                if (!builder.HasErrorMessages)
                {
                    _balance += deposit.Amount;
                }

                return(builder.UsingBalance(_balance));
            }
            catch (Exception ex)
            {
                return(builder
                       .WithException(ex)
                       .UsingBalance(_balance));
            }
        }
Example #2
0
        public ProcessResult Process(Withdrawal withdrawal)
        {
            ProcessResultBuilder builder = new ProcessResultBuilder();

            try
            {
                if (!withdrawal.IsValid)
                {
                    builder.AddErrorMessage("Invalid withdrawal");
                }

                if (!HasSufficientFunds(withdrawal.Amount))
                {
                    builder.AddErrorMessage("You cannot withdraw more than is in the account");
                }

                if (!builder.HasErrorMessages)
                {
                    _balance -= withdrawal.Amount;
                }

                return(builder.UsingBalance(_balance));
            }
            catch (Exception ex)
            {
                return(builder
                       .WithException(ex)
                       .UsingBalance(_balance));
            }
        }
Example #3
0
        public ProcessResult Process(Fee fee)
        {
            ProcessResultBuilder builder = new ProcessResultBuilder();

            try
            {
                if (!fee.IsValid)
                {
                    builder.AddErrorMessage("Invalid fee");
                }

                if (!builder.HasErrorMessages)
                {
                    _balance -= fee.Amount;
                }

                return(builder.UsingBalance(_balance));
            }
            catch (Exception ex)
            {
                return(builder
                       .WithException(ex)
                       .UsingBalance(_balance));
            }
        }