public static void Run() { Account <Movement> account = Account <Movement> .Create(); do { int input; Console.WriteLine(" Premi: \n 0 per effettuare un movimento \n 1 per visualizzare i dati del conto e i movimenti \n 2 per uscire"); while (!int.TryParse(Console.ReadLine(), out input)) { Console.WriteLine("Input non valido."); Console.WriteLine(" Premi: \n 0 per effettuare un movimento \n 1 per visualizzare i dati del conto e i movimenti \n 2 per uscire"); } switch (input) { case 0: Movement movement = Factory.FactoryMovement(); Console.WriteLine("Il movimento è attivo o passivo?Premi 0 se attivo, 1 se passivo"); int input_active; while (!int.TryParse(Console.ReadLine(), out input_active) || (input_active != 0 && input_active != 1)) { Console.WriteLine("Input non valido. Premi 0 se attivo, 1 se passivo"); } AddMovement(account, movement, input_active); break; case 1: account.Statement(); break; case 2: return; default: Console.WriteLine("Input non valido"); break; } } while (true); }