示例#1
0
        /// <summary>
        ///     Returns true if the transfer is valid.
        /// </summary>
        public bool IsValid()
        {
            var valid = Narrative.IsSomething() &&
                        FromLedger != null &&
                        ToLedger != null &&
                        FromLedger != ToLedger &&
                        TransferAmount > 0.0001M;

            if (!valid)
            {
                return(false);
            }

            if (BankTransferRequired)
            {
                valid = AutoMatchingReference.IsSomething();
            }

            if (FromLedger.BudgetBucket is SurplusBucket &&
                ToLedger.BudgetBucket is SurplusBucket &&
                FromLedger.StoredInAccount == ToLedger.StoredInAccount)
            {
                valid = false;
            }

            return(valid);
        }