private static void StampaListaBici()
        {
            //Richiedo all'utente il tipo di provider dati
            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Provider storage(Json)");
            string storageTypeAsString = "Json";
            //ConsoleUtils.ReadLine<string>(e => e == "Json");
            StorageType storageType = Enum.Parse <StorageType>(storageTypeAsString);

            IManager <Bici> biciManager;

            //Switch sul tipo di storage
            switch (storageType)
            {
            case StorageType.Json:
                biciManager = new JsonBiciManager();
                break;

            default:
                throw new NotSupportedException($"Il provider {storageType} non è supportato");
            }

            //Istanzio il business layer (che il cervello della
            //nostra applicazione)
            VeicoloMainBusinessLayer layer = new VeicoloMainBusinessLayer(biciManager);

            layer.StampaBici();
        }
        private static void Find()
        {
            //Richiedo all'utente il tipo di provider dati
            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Provider storage(Json)");
            string storageTypeAsString = "Json";
            //ConsoleUtils.ReadLine<string>(e => e == "Json");
            StorageType storageType = Enum.Parse <StorageType>(storageTypeAsString);

            IManager <Bici> biciManager;

            //Switch sul tipo di storage
            switch (storageType)
            {
            case StorageType.Json:
                biciManager = new JsonBiciManager();
                break;

            default:
                throw new NotSupportedException($"Il provider {storageType} non è supportato");
            }
            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Modello da ricerchare:");
            string Modello = ConsoleUtils.ReadLine <string>(t => !string.IsNullOrEmpty(t));

            //Istanzio il business layer
            VeicoloMainBusinessLayer layer = new VeicoloMainBusinessLayer(biciManager);


            layer.FindByModello(Modello);
        }
        private static void CreaBici()
        {
            //Richiedo all'utente il tipo di provider dati
            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Provider storage(Json)");
            string storageTypeAsString = "Json";
            //ConsoleUtils.ReadLine<string>(e => e == "Json");
            StorageType storageType = Enum.Parse <StorageType>(storageTypeAsString);

            //Richiediamo i dati da console
            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "NumeroTelaio:");
            string NumeroTelaio = ConsoleUtils.ReadLine <string>(t => !string.IsNullOrEmpty(t));

            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Marca:");
            string Marca = ConsoleUtils.ReadLine <string>(t => !string.IsNullOrEmpty(t));

            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Colore:");
            string Colore = ConsoleUtils.ReadLine <string>(t => !string.IsNullOrEmpty(t));

            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Modello:");
            string Modello = ConsoleUtils.ReadLine <string>(t => !string.IsNullOrEmpty(t));

            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "Velocità:");
            int Velocita = ConsoleUtils.ReadLine <int>(p => p > 0);

            ConsoleUtils.WriteColor(ConsoleColor.Yellow, "IsElettrica:");
            bool IsElettrica = ConsoleUtils.ReadLine <bool>(t => t == true || t == false);


            IManager <Bici> biciManager;

            //Switch sul tipo di storage
            switch (storageType)
            {
            case StorageType.Json:
                biciManager = new JsonBiciManager();
                break;

            default:
                throw new NotSupportedException($"Il provider {storageType} non è supportato");
            }

            //Istanzio il business layer
            VeicoloMainBusinessLayer layer = new VeicoloMainBusinessLayer(biciManager);

            //Avvio la funzione di creazione
            string[] messaggiDiErrore = layer.CreaBiciSeNonEsiste(
                NumeroTelaio, Marca, Modello, IsElettrica, Colore, Velocita);

            //Se non ho messaggi di errore, confermo
            if (messaggiDiErrore.Length == 0)
            {
                ConsoleUtils.WriteColorLine(ConsoleColor.Green, "TUTTOBBBENE!!!");
            }
            else
            {
                //Messaggio di errore generale
                ConsoleUtils.WriteColorLine(ConsoleColor.Yellow,
                                            "Attenzione! Ci sono errori nella creazione!");

                //Scorriamo gli errori e li mostriamo all'utente
                foreach (var currentMessage in messaggiDiErrore)
                {
                    ConsoleUtils.WriteColorLine(ConsoleColor.Yellow, currentMessage);
                }
            }
        }
Пример #4
0
        public static void EseguiCreaModificaCancella()
        {
            //Creazione dell'istanza del manager delle bici
            Console.WriteLine();
            Console.WriteLine("ESECUZIONE DEL WORKFLOW BICI...");
            Console.WriteLine();

            IManager <Bici> manager = new JsonBiciManager();

            //Visualizzazione contenuto database
            Console.WriteLine("Lettura del database...");
            var biciInArchivio = manager.Carica();

            Console.WriteLine($"Trovate n° {biciInArchivio.Count} bici in archivio");
            foreach (var currentBici in biciInArchivio)
            {
                Console.WriteLine($"Lettura: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine("");
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Creazione di una nuova bici => "C" di CRUD
            Console.WriteLine("Creazione di una bici...");
            var nuovaBici = new Bici {
                NumeroTelaio = "012345", Colore = "Green", IsElettrica = true, Modello = "Piaggio"
            };

            manager.Crea(nuovaBici);
            Console.WriteLine("La bici dovrebbe essere stata creata su disco!");
            Console.WriteLine();

            //Leggiamo bici dal disco => "R" di CRUD
            Console.WriteLine("Lettura del database...");
            var tutteLeBici = manager.Carica();

            Console.WriteLine($"Numero biciclette trovati: {tutteLeBici.Count}");
            foreach (var currentBici in tutteLeBici)
            {
                Console.WriteLine($"Lettura dati bici: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Modifico bici esistente e scrivo sui disco
            Console.WriteLine("Modifica di una bici esistente...");
            nuovaBici.NumeroTelaio = "012345";
            manager.Aggiorna(nuovaBici);
            Console.WriteLine("Il nome cambiato dovrebbe essere sul disco!");
            Console.WriteLine();

            //Rileggiamo per vedere se effettivamente è cambiato
            Console.WriteLine("Lettura del database...");
            var tutteLeBiciDiNuovo = manager.Carica();

            Console.WriteLine($"Numero bici trovate: {tutteLeBiciDiNuovo.Count}");
            foreach (var currentBici in tutteLeBiciDiNuovo)
            {
                Console.WriteLine($"Lettura bici: {currentBici.NumeroTelaio} (ID:{currentBici.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();

            //Cancellazione del Bicicletta => "D" di CRUD
//            Console.WriteLine("Cancellazione di un Bicicletta esistente...");
//            manager.Cancella(nuovaBici);
//            Console.WriteLine("Il Bicicletta dovrebbe essere stato cancellato dal disco!");
//            Console.WriteLine();

            //Rileggiamo per vedere se effettivamente è cambiato
            Console.WriteLine("Lettura del database...");
            var tuttiIbicicletteUltimaVolta = manager.Carica();

            Console.WriteLine($"Numero biciclette trovate: {tuttiIbicicletteUltimaVolta.Count}");
            foreach (var currentBicicletta in tuttiIbicicletteUltimaVolta)
            {
                Console.WriteLine($"Lettura Bicicletta: {currentBicicletta.NumeroTelaio} (ID:{currentBicicletta.Id})");
            }
            Console.WriteLine();
            Console.WriteLine("Premere invio per proseguire...");
            Console.ReadLine();
        }