//
// Autore: Giuliano Pellegrini Parisi
//
// Classe: 3^Sirio Inf.
//
// Data: 2 novembre 2008
//
// Oggetto: Implementazione libreria fbblAcquisizioni
//
// Release: 0.1

using System;
using fbblMessaggi;
using fbblControlli;

namespace fbblAcquisizioni
{

    public class StrumentiAcquisizioni
    {

        static public double AcquisizioneDatoReale(string TestoMessaggio)
        {
            // Dichiarazione dei dati locali


            double DatoInserito = 0;
            bool NumeroNonRealePositivo;

            do
            {
                DatoInserito = AcquisizioneDatoRealeDallaTastiera(TestoMessaggio);
                NumeroNonRealePositivo = StrumentiControlli.ControlloNumeroRealeNonPositivo(DatoInserito);


            } while (NumeroNonRealePositivo == true);



            return DatoInserito;

        }


        static public double AcquisizioneDatoRealeDallaTastiera(string TestoMessaggio)
        {
            // Dichiarazione dei dati locali


            double DatoInserito = 0;
            bool DatoInseritoValido;
            string DatoInseritoDaTastiera;


            do
            {

                DatoInseritoValido = true;

                StrumentiMessaggi.Messaggio(TestoMessaggio, true);

                DatoInseritoDaTastiera = Console.ReadLine();

                // Le operazioni che si trovano all'interno del blocco try, se falliscono portano l'esecuzione del programma
                // all'interno del blocco catch.
                // La CPU per capire se l'operazione fallisce, guarda il nome dell'Eccezione che avete indicato nel blocco catch.
                // Nel caso di conversioni errate, viene sollevata l'eccezione chiamata FormatException.

                try
                {
                    DatoInserito = Convert.ToDouble(DatoInseritoDaTastiera);

                    // Lo strumento ToDouble effettua la conversione da stringa a double e si trova nella valigetta Convert.

                }
                catch (FormatException)
                {
                    DatoInseritoValido = false;
                    StrumentiMessaggi.Messaggio("Il dato che hai inserito non è un numero reale!");
                    //AttesaPressioneTasto();
                }
                
            } while (DatoInseritoValido == false);

            // L'operatore == è chiamato di COMPARAZIONE
            return DatoInserito;

        }

        static public void AttesaPressioneTasto()
        {
            Console.ReadKey();
        }





    }


}

















