Exemple #1
0
        public void Transferir(decimal cantidad, Cuenta aCuenta)
        {
            // <pex>
            if (aCuenta == (Cuenta)null)
            {
                throw new ArgumentNullException("aCuenta");
            }
            // </pex>

            if (cantidad > Saldo)
            {
                throw new InvalidOperationException("No tiene saldo suficiente.");
            }

            var ratio = conversorMoneda.RatioConversion(Moneda, aCuenta.Moneda);

            Saldo         -= cantidad;
            aCuenta.Saldo += cantidad * ratio;

            var mensaje =
                string.Format(
                    "C {0} ({1}) -{4} | C {2} ({3}) +{5} | Ratio Conversión: {6}",
                    NumeroCuenta,
                    Moneda,
                    aCuenta.NumeroCuenta,
                    aCuenta.Moneda,
                    cantidad,
                    cantidad * ratio,
                    ratio);

            EventManager.Current.Publish(mensaje);
            logger.Log(mensaje);
        }