private void setAtributoDinamico(string nombre, Objeto instancia) { AtributoDinamico atributo = new AtributoDinamico(nombre, instancia); if (arrayAtributo == null) { arrayAtributo = new List <Atributo>(); } if (arrayAtributo.Contains(atributo)) { int index = arrayAtributo.IndexOf(atributo); Atributo dato = getAtributo(nombre); if (instancia.GetType() == Nulo.NULO.GetType()) { arrayAtributo.RemoveAt(index); } else if (dato.valor().GetType() != instancia.GetType()) { throw new LanguageException("Al atributo '" + nombre + "' solo se le pueden asignar valores de tipo '" + dato.valor().GetType().Name + "'."); } else { arrayAtributo[index] = atributo; } } else { if (instancia.GetType() != Nulo.NULO.GetType()) { arrayAtributo.Add(atributo); } } }
public virtual void setAtributoFijo(string nombre, Objeto valor) { AtributoFijo atributo = new AtributoFijo(nombre, valor); if (arrayAtributo == null) { arrayAtributo = new List <Atributo>(); } if (arrayAtributo.Contains(atributo)) { Objeto dato = getDatoDelAtributo(nombre); if (valor.GetType() == Nulo.NULO.GetType()) { throw new LanguageException("Al atributo Fijo'" + nombre + "' No se le puede asignar un valor Nulo, debe asignarle un valor de tipo '" + dato.GetType().Name + "'."); } else if (dato.GetType() != valor.GetType()) { throw new LanguageException("Al atributo '" + nombre + "' solo le puede asignar un valor de tipo '" + dato.GetType().Name + "'."); } else { int index = arrayAtributo.IndexOf(atributo); arrayAtributo[index] = atributo; } } else { if (valor.GetType() != Nulo.NULO.GetType()) { arrayAtributo.Add(atributo); } else { throw new LanguageException("Al atributo Fijo'" + nombre + "' No se le puede asignar un valor Nulo, debe asignarle un valor de tipo '" + valor.GetType().Name + "'."); } } }
public override Boolean esMenorOIgualQue(Objeto objeto) { bool resultado = false; if (objeto is Moneda estaMoneda) { if (tipoDeMoneda_Renamed != estaMoneda.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(), estaMoneda.tipoDeMoneda_Renamed.nombre())); } resultado = ConvertirADouble() <= estaMoneda.ConvertirADouble(); } else { throw new LanguageException(string.Format("No se puede comparar un {0} con un {1}.", objeto.GetType().Name, this.GetType().Name)); } return(resultado ? Boolean.True : Boolean.False); }
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); }
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); }
public override Objeto sumar(Objeto objeto) { Objeto resultado; if (objeto is Hilera) { resultado = new Hilera(valor + ((Hilera)objeto).Valor); } else if (objeto is Decimal) { resultado = new Hilera(valor + ((Decimal)objeto).Valor); } else if (objeto is Numero) { resultado = new Hilera(valor + ((Numero)objeto).Valor); } else { throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}.", objeto.GetType().Name, this.GetType().Name)); } return(resultado); }
public override Boolean esIgualQue(Objeto otraFecha) { try { if (otraFecha is FechaHora) { return(this.EsIgualQue((FechaHora)otraFecha).valor ? Boolean.True : Boolean.False); } else { Fecha fecha = (Fecha)otraFecha; return(this.EsIgualQue(new FechaHora(fecha.Dia, fecha.Mes, fecha.Anno, 0, 0, 0)).valor ? Boolean.True : Boolean.False); } } 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(FechaHora).Name, otraFecha.GetType().Name)); } }
public override Objeto sumar(Objeto objeto) { Lista miLista = new Lista(); miLista.guardarLista(lista); bool elObjetoDelParametroEsInstanciaDeLista = objeto is Lista; if (!elObjetoDelParametroEsInstanciaDeLista) { throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), objeto.GetType().Name)); } Lista nuevaLista = new Lista(); nuevaLista.guardarTodo((Lista)objeto); bool noEsElMismoTipoDeObjeto = !miLista.demeElTipoObjetoAlQuePertenece().esIgual(nuevaLista.demeElTipoObjetoAlQuePertenece()); if (noEsElMismoTipoDeObjeto) { throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), nuevaLista.demeElTipoObjetoAlQuePertenece())); } miLista.guardarTodo(nuevaLista); return(miLista); }
public override Boolean esMenorOIgualQue(Objeto otraFecha) { try { return(otraFecha is Fecha?esMenorOIgualQue((Fecha)otraFecha) : this.toFechaHora().esMenorOIgualQue(otraFecha)); } 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(Fecha).Name, otraFecha.GetType().Name)); } }
public override Boolean esIgualQue(Objeto objeto) { try { if (objeto is Fecha) { Fecha fecha = (Fecha)objeto; return(dia_Renamed == fecha.dia_Renamed && mes_Renamed == fecha.mes_Renamed && anno_Renamed == fecha.anno_Renamed ? Boolean.True : Boolean.False); } else { FechaHora fecha = (FechaHora)objeto; return(this.toFechaHora().esIgualQue(fecha)); } } 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(Fecha).Name, objeto.GetType().Name)); } }
public override Boolean esMayorOIgualQue(Objeto objeto) { double otroValor = 0.0; try { otroValor = objeto is Numero ? ((Numero)objeto).valor : ((Decimal)objeto).valor; } 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(Decimal).Name, objeto.GetType().Name)); } return(valor >= otroValor ? Boolean.True : Boolean.False); }
public override Objeto dividir(Objeto objeto) { Objeto resultado; if (objeto is Numero) { resultado = new Numero((int)valor / ((Numero)objeto).Valor); } else if (objeto is Decimal) { resultado = new Decimal(valor / ((Decimal)objeto).Valor); } else { throw new LanguageException(string.Format("No se puede dividir un {0}a un {1}.", objeto.GetType().Name, this.GetType().Name)); } return(resultado); }
public override Boolean esIgualQue(Objeto objeto) { Tabla tabla = null; try { tabla = (Tabla)objeto; } catch (System.InvalidCastException) { throw new BusinessLogicalException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontró un valor de tipo [{1}]", typeof(Tabla).Name, objeto.GetType().Name)); } return(this == tabla ? Boolean.True : Boolean.False); }
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); }
public override Boolean esMayorOIgualQue(Objeto objeto) { Mes argumento = null; try { argumento = (Mes)objeto; } 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(Mes).Name, objeto.GetType().Name)); } return(ano > argumento.ano || (ano == argumento.ano && mes.numero() >= argumento.mes.numero()) ? Boolean.True : Boolean.False); }
public override Boolean esIgualQue(Objeto objeto) { Boolean argumento = null; try { argumento = (Boolean)objeto; } 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(Boolean).Name, objeto.GetType().Name)); } return(valor == argumento.valor ? Boolean.True : Boolean.False); }
public override Objeto restar(Objeto objeto) { Lista miLista = new Lista(); miLista.guardarLista(lista); bool elObjetoDelParametroEsInstanciaDeLista = objeto is Lista; if (elObjetoDelParametroEsInstanciaDeLista) { throw new LanguageException(string.Format("No se puede restar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), objeto.GetType().Name)); } Lista nuevaLista = new Lista(); nuevaLista.guardarTodo((Lista)objeto); bool noEsElMismoTipoDeObjeto = !miLista.demeElTipoObjetoAlQuePertenece().esIgual(nuevaLista.demeElTipoObjetoAlQuePertenece()); if (noEsElMismoTipoDeObjeto) { throw new LanguageException(string.Format("No se puede restar un %s a un '%2', ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), nuevaLista.demeElTipoObjetoAlQuePertenece())); } Lista copiaDeMiLista = new Lista(); copiaDeMiLista.guardarTodo(miLista); foreach (Objeto listaRestar in nuevaLista.getLista()) { foreach (Objeto listaElemento in copiaDeMiLista.getLista()) { if (listaElemento.Equals(listaRestar)) { miLista.remover(listaRestar); } } } return(miLista); }