protected ParamentroInfo capturarParametroAquecimentoNormal()
        {
            var param = new ParamentroInfo {
                Potencia = capturarPotencia(),
                Tempo    = capturarTempo()
            };

            return(param);
        }
        public override string aquecer(string textoFrio, ParamentroInfo paramentro, char caracter = '.')
        {
            _thread = new Thread(() => {
                base.aquecer(textoFrio, paramentro, caracter);
            });
            _thread.Start();

            Console.WriteLine("Para pausa pressione 'p', para cancelar pressione 'x'...");
            pausarResumirOuCancelar();
            return(string.Empty);
        }
        public override string aquecer(string textoFrio, ParamentroInfo paramentro, char caracter = '.')
        {
            var textoAquecido = string.Empty;

            // Caso o texto seja o caminho de um arquivo, executa da rotina 'aquecerPorArquivo'
            if (File.Exists(textoFrio))
            {
                // Le o conteúdo do arquivo original
                var verdadeiroTextoFrio = File.ReadAllText(textoFrio);
                textoAquecido = aquecerPorArquivo(textoFrio, verdadeiroTextoFrio, paramentro, caracter);
            }
            // Caso contrário executa o normal
            else
            {
                textoAquecido = base.aquecer(textoFrio, paramentro, caracter);
            }
            return(textoAquecido);
        }
Example #4
0
 protected void validarParametro(ParamentroInfo paramentro)
 {
     if (paramentro.Tempo == null)
     {
         executarErro("Informe o tempo de aquecimento.");
     }
     if (paramentro.Tempo.TotalMinutes > 2)
     {
         executarErro("O tempo de aquecimento deve ser menor que 2 minutos.");
     }
     if (paramentro.Tempo.TotalSeconds < 1)
     {
         executarErro("O tempo de aquecimento deve ser superior a 1 segundo.");
     }
     if (paramentro.Potencia < 1 || paramentro.Potencia > 10)
     {
         executarErro("A potência deve estar entre 1 e 10.");
     }
 }
Example #5
0
        /// <summary>
        /// Rotina principal de aquecimento
        /// </summary>
        /// <param name="textoFrio"></param>
        /// <param name="paramentro"></param>
        /// <param name="caracter"></param>
        /// <returns></returns>
        public virtual string aquecer(string textoFrio, ParamentroInfo paramentro, char caracter = '.')
        {
            validarParametro(paramentro);
            StringBuilder textoAquecido   = new StringBuilder();
            StringBuilder textoPorSegundo = new StringBuilder();

            textoAquecido.Append(textoFrio);
            for (var i = 1; i <= paramentro.Tempo.TotalSeconds; i++)
            {
                textoPorSegundo.Clear();
                for (var p = 0; p < paramentro.Potencia; p++)
                {
                    textoPorSegundo.Append(caracter);
                }
                textoAquecido.Append(textoPorSegundo);
                aoProcessar(textoPorSegundo.ToString());
                Thread.Sleep(1000);
            }
            aoConcluir(textoAquecido.ToString());
            return(textoAquecido.ToString());
        }
        private string aquecerPorArquivo(string arquivo, string textoFrio, ParamentroInfo paramentro, char caracter = '.')
        {
            validarParametro(paramentro);
            using (var sw = File.AppendText(arquivo))
            {
                StringBuilder textoPorSegundo = new StringBuilder();
                for (var i = 1; i <= paramentro.Tempo.TotalSeconds; i++)
                {
                    textoPorSegundo.Clear();
                    for (var p = 0; p < paramentro.Potencia; p++)
                    {
                        textoPorSegundo.Append(caracter);
                    }
                    sw.Write(textoPorSegundo.ToString());
                    aoProcessar(textoPorSegundo.ToString());
                    Thread.Sleep(1000);
                }
            }
            var textoAquecido = File.ReadAllText(arquivo);

            aoConcluir(textoAquecido);
            return(textoAquecido);
        }