Esempio n. 1
0
 public double ValorTotal()
 {
     double result = ValorSomenteDoDigito();
     if (digitoFilho != null)
         result += digitoFilho.ValorTotal();
     return result;
 }
Esempio n. 2
0
        public string Extenso()
        {
            if (grupoFilho == null)
                return digito.Extenso();
            else if (ValorSomenteDoGrupo() == 0)
            {
                return grupoFilho.Extenso();
            }
            else
            {
                double valorGrupo = digito.ValorTotal();
                string singularPlural = valorGrupo < 2 ? "singular" : "plural";
                string nomeGrupo =
                    ResourceManagerHelper
                        .Instance
                        .ResourceManager
                        .GetString(string.Format("Extenso1e{0}{1}", (posicao - 1) * 3, singularPlural));

                double valorGrupoFilho = grupoFilho.ValorTotal();

                if (valorGrupoFilho == 0)
                {
                    return string.Format("{0} {1}",
                    digito.Extenso(),
                    nomeGrupo);
                }
                else
                {
                    Grupo proximoGrupoComValor = grupoFilho.PrimeiroGrupoComValor();
                    string separador = proximoGrupoComValor.Posicao == 1 ? " e" : ",";
                    return string.Format("{0} {1}{2} {3}",
                    digito.Extenso(),
                    nomeGrupo,
                    separador,
                    grupoFilho.Extenso());
                }
            }
        }