Esempio n. 1
0
        public override Boolean esIgualQue(Objeto objeto)
        {
            Moneda otraMoneda = null;

            try
            {
                otraMoneda = (Moneda)objeto;
                if (tipoDeMoneda_Renamed != otraMoneda.tipoDeMoneda_Renamed)
                {
                    throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", tipoDeMoneda_Renamed.nombre(), otraMoneda.tipoDeMoneda_Renamed.nombre()));
                }
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Denominacion).Name, objeto.GetType().Name));
            }
            return(ConvertirADouble() == otraMoneda.ConvertirADouble() && tipoDeMoneda_Renamed == otraMoneda.tipoDeMoneda_Renamed ? Boolean.True : Boolean.False);
        }
Esempio n. 2
0
        public override Objeto dividir(Objeto objeto)
        {
            double resultado = 0.0;

            if (objeto is Decimal unDecimal)
            {
                resultado = ConvertirADouble() / unDecimal.Valor;
            }
            else if (objeto is Numero numero)
            {
                resultado = ConvertirADouble() / (double)numero.Valor;
            }
            else
            {
                throw new LanguageException(string.Format("No se puede dividir un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            Moneda nuevoMonto = ObtenerNuevaMonedaEnLaMismaEconomia(Moneda.ConvertirADouble(resultado));

            return(nuevoMonto);
        }
Esempio n. 3
0
        public override Objeto restar(Objeto objeto)
        {
            double resultado = 0.0;

            if (objeto is Moneda estaMoneda)
            {
                if (EstaEnLaMismaMonedaQue(estaMoneda))
                {
                    resultado = (ConvertirADouble() - estaMoneda.ConvertirADouble());
                }
                else
                {
                    throw new BusinessLogicalException(string.Format("No se puede restar un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
                }
            }
            else
            {
                throw new LanguageException(string.Format("No se puede restar un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            Moneda nuevoMonto = ObtenerNuevaMonedaEnLaMismaEconomia(resultado);

            return(nuevoMonto);
        }
Esempio n. 4
0
 internal abstract bool EstaEnLaMismaMonedaQue(Moneda otroMonto);
Esempio n. 5
0
 internal override bool EstaEnLaMismaMonedaQue(Moneda otroMonto)
 {
     return(this.TipoDeMoneda() == otroMonto.TipoDeMoneda());
 }