Пример #1
0
        public static void Main(string[] args)
        {
            string opzione = string.Empty;

            //List<ITransazione> transazioni = new List<ITransazione>();
            //ITransactionFactory factory = new TransactionFactory();

            StampaMenu();

            do
            {
                Console.WriteLine();
                Console.Write("Inserire opzione desiderata: ");
                opzione = Console.ReadLine();
                IEnumerable <ITransazione> transazioni = TransactionManager.GetTransactions();
                switch (opzione)
                {
                case "m":
                case "menu":
                    StampaMenu();
                    break;

                case "a":
                case "aggiungi":
                    try
                    {
                        //ITransazione nuovaTransazione = factory.Create();
                        ITransazione nuovaTransazione = TransactionManager.CreateTransaction();

                        Console.WriteLine();

                        Console.Write("Data transazione (MM/gg/aaaa): ");
                        string dtTransazione = Console.ReadLine();
                        nuovaTransazione.DataTransazione = DateTime.Parse(dtTransazione);
                        Console.Write("Tipo transazione (Spesa/Ricavo): ");
                        nuovaTransazione.Tipo = Console.ReadLine();
                        Console.Write("Categoria transazione: ");
                        nuovaTransazione.Categoria = Console.ReadLine();
                        Console.Write("Descrizione transazione: ");
                        nuovaTransazione.Descrizione = Console.ReadLine();
                        Console.Write("Importo transazione: ");
                        string impTransazione = Console.ReadLine();
                        nuovaTransazione.Importo = decimal.Parse(impTransazione);

                        //transazioni.Add(nuovaTransazione);
                        TransactionManager.SaveTransaction(nuovaTransazione);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Errore durante l'inserimento della transazione.");
                    }
                    break;

                case "c":
                case "cancella":

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                    }
                    else if (transazioni.Count() == 1)
                    {
                        Console.Write("Sei sicuro di voler procedere? (si/no): ");
                        opzione = Console.ReadLine();
                        if (opzione == "si")
                        {
                            //transazioni.RemoveAt(0);
                            TransactionManager.DeleteTransaction(0);
                            Console.WriteLine("Elemento cancellato.");
                        }
                        else if (opzione == "no")
                        {
                            Console.WriteLine("Operazione annullata.");
                        }
                        else
                        {
                            Console.WriteLine("Opzione non valida.");
                        }
                    }
                    else
                    {
                        Console.Write("Qual'è la posizione della transazione che vuoi cancellare? ");
                        opzione = Console.ReadLine();
                        try
                        {
                            int posizione = int.Parse(opzione);
                            if (posizione > 0 && posizione <= transazioni.Count())
                            {
                                Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                opzione = Console.ReadLine();
                                if (opzione == "si")
                                {
                                    //transazioni.RemoveAt(posizione - 1);
                                    TransactionManager.DeleteTransaction(posizione - 1);     // per cancellare devo passare dal manager
                                    Console.WriteLine("Elemento cancellato.");
                                }
                                else if (opzione == "no")
                                {
                                    Console.WriteLine("Operazione annullata.");
                                }
                                else
                                {
                                    Console.WriteLine("Opzione non valida.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + transazioni.Count() + ".");
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Errore durante la cancellazione.");
                        }
                    }
                    break;

                case "s":
                case "stampa":

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Non ci sono transazioni.");
                    }
                    else
                    {
                        int i = 0;
                        foreach (ITransazione transazione in transazioni)
                        {
                            //ITransazione transazione = transazioni. [i];    // non abbiamo l'accesso tramite l'indice come negli array

                            Console.WriteLine((i + 1) + ":");
                            Console.WriteLine(transazione);
                            Console.WriteLine();
                            i++;
                        }
                    }
                    break;

                case "e":
                case "esci":
                    Console.Write("Sei sicuro di voler uscire? (si/no): ");
                    opzione = Console.ReadLine();
                    if (opzione == "si")
                    {
                        return;
                    }
                    if (opzione != "no")
                    {
                        Console.WriteLine("Opzione non riconosciuta.");
                    }
                    break;

                default:
                    Console.WriteLine("Opzione non riconosciuta. Riprovare.");
                    break;
                }
            } while (true);
        }
Пример #2
0
        public static void Main(string[] args)
        {
            string opzione = string.Empty;

            //operazioni di cui si occuperà il TransactionManager

            //List<ITransazione> transazioni = new List<ITransazione>();
            //ITransactionFactory factory = new TransactionFactory();

            StampaMenu();

            do
            {
                Console.WriteLine();
                Console.Write("Inserire opzione desiderata: ");
                opzione = Console.ReadLine();

                //lo porto fuori da ciclo così lo vedono tutti
                IEnumerable <ITransazione> transazioni = TransactionManager.GetTransaction();

                switch (opzione)
                {
                case "m":
                case "menu":
                    StampaMenu();
                    break;

                case "a":
                case "aggiungi":
                    try
                    {
                        //ITransazione nuovaTransazione = factory.Create();
                        //riga sopra non c'è più, la fa TransactionManager, che richiamo:
                        ITransazione nuovaTransazione = TransactionManager.CreateTransaction();

                        Console.WriteLine();

                        Console.Write("Data transazione (MM/gg/aaaa): ");
                        string dtTransazione = Console.ReadLine();
                        nuovaTransazione.DataTransazione = DateTime.Parse(dtTransazione);
                        Console.Write("Tipo transazione (" + TipoTransazione.Spesa + "/" + TipoTransazione.Ricavo + "):");

                        //nuovaTransazione.Tipo = Console.ReadLine();
                        //dopo enum: (scrivo più codice ma faccio controllo di errore alla sorgente)
                        string tipo = Console.ReadLine();
                        if (tipo == TipoTransazione.Spesa.ToString())
                        {
                            nuovaTransazione.Tipo = TipoTransazione.Spesa;
                        }
                        else if (tipo == TipoTransazione.Ricavo.ToString())
                        {
                            nuovaTransazione.Tipo = TipoTransazione.Ricavo;
                        }
                        else
                        {
                            Console.WriteLine("Valore non corretto");
                        }


                        Console.Write("Categoria transazione: ");
                        nuovaTransazione.Categoria = Console.ReadLine();
                        Console.Write("Descrizione transazione: ");
                        nuovaTransazione.Descrizione = Console.ReadLine();
                        Console.Write("Importo transazione: ");
                        string impTransazione = Console.ReadLine();
                        nuovaTransazione.Importo = decimal.Parse(impTransazione);

                        //transazioni.Add(nuovaTransazione);
                        //riga sopra non c'è più, la fa TransactionManager, che richiamo:
                        TransactionManager.SaveTransaction(nuovaTransazione);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Errore durante l'inserimento della transazione.");
                    }
                    break;

                case "c":
                case "cancella":
                    //inserisco IEnumerable (lo dichiaro sopra, fuori da ciclo così lo leggono tutti) quindi riga sotto non ce l'ho più
                    //IEnumerable<Transazione> transazioni = TransactionManager.GetTransaction();

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                    }
                    else if (transazioni.Count() == 1)
                    {
                        Console.Write("Sei sicuro di voler procedere? (si/no): ");
                        opzione = Console.ReadLine();
                        if (opzione == "si")
                        {
                            //transazioni.RemoveAt(0);
                            TransactionManager.DeleteTransaction(0);

                            Console.WriteLine("Elemento cancellato.");
                        }
                        else if (opzione == "no")
                        {
                            Console.WriteLine("Operazione annullata.");
                        }
                        else
                        {
                            Console.WriteLine("Opzione non valida.");
                        }
                    }
                    else
                    {
                        Console.Write("Qual'è la posizione della transazione che vuoi cancellare? ");
                        opzione = Console.ReadLine();
                        try
                        {
                            int posizione = int.Parse(opzione);
                            //prima count era una property, ora è un metodo, aggiungo ()
                            if (posizione > 0 && posizione <= transazioni.Count())

                            {
                                Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                opzione = Console.ReadLine();
                                if (opzione == "si")
                                {
                                    //transazioni.RemoveAt(posizione - 1);
                                    TransactionManager.DeleteTransaction(posizione - 1);

                                    Console.WriteLine("Elemento cancellato.");
                                }
                                else if (opzione == "no")
                                {
                                    Console.WriteLine("Operazione annullata.");
                                }
                                else
                                {
                                    Console.WriteLine("Opzione non valida.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + transazioni.Count() + ".");
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Errore durante la cancellazione.");
                        }
                    }
                    break;

                case "s":
                case "stampa":

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Non ci sono transazioni.");
                    }
                    else
                    {
                        //trasformo ciclo for in ciclo foreach
                        int i = 0;
                        foreach (ITransazione transazione in transazioni)
                        {
                            //ITransazione transazione = transazioni[i];

                            Console.WriteLine((i + 1) + ":");
                            Console.WriteLine(transazione);
                            Console.WriteLine();
                        }
                    }
                    break;

                case "e":
                case "esci":
                    Console.Write("Sei sicuro di voler uscire? (si/no): ");
                    opzione = Console.ReadLine();
                    if (opzione == "si")
                    {
                        return;
                    }
                    if (opzione != "no")
                    {
                        Console.WriteLine("Opzione non riconosciuta.");
                    }
                    break;

                default:
                    Console.WriteLine("Opzione non riconosciuta. Riprovare.");
                    break;
                }
            } while (true);
        }
Пример #3
0
        //la stampa video è gestita dalla console, ma il resto no ---> gestore delle transazioni va bene con il pattern singleton (elenco transazioni dato da lui)
        public static void Main(string[] args)
        {
            string opzione = string.Empty;

            //List<Categoria> categorie = new List<Categoria>();
            //List<ITransazione> transazioni = new List<ITransazione>();
            //ITransactionFactory factory = new TransactionFactory();

            StampaMenu();

            do
            {
                Console.WriteLine();
                Console.Write("Inserire opzione desiderata: ");
                opzione = Console.ReadLine();
                Console.WriteLine();
                IEnumerable <ITransazione> transazioni = TransactionManager.GetTransazione(); //prendendo le transazioni dal manager mantengo la tessa logica
                IEnumerable <ICategory>    categorie   = CategoryManager.GetCategoria();

                switch (opzione)
                {
                case "m":
                case "menu":
                    StampaMenu();
                    break;

                case "a":
                case "aggiungi":
                    if (categorie.Count() == 0)
                    {
                        Console.WriteLine("Non ci sono categorie inserite. Aggiungi una categoria. ");
                        break;
                    }
                    try
                    {
                        //ITransazione nuovaTransazione = factory.Create();
                        ITransazione nuovaTransazione = TransactionManager.CreateTransaction();
                        Console.WriteLine();

                        Console.Write("Data transazione (MM/gg/aaaa): ");
                        string dtTransazione = Console.ReadLine();
                        nuovaTransazione.DataTransazione = DateTime.Parse(dtTransazione);
                        Console.Write("Tipo transazione (" + TipoTransazione.Spesa + "/" + TipoTransazione.Ricavo + "): ");

                        //controllo che tipo transazione sia giusto
                        //nuovaTransazione.Tipo = Console.ReadLine();
                        string tipo = Console.ReadLine();
                        if (tipo == TipoTransazione.Spesa.ToString())
                        {
                            nuovaTransazione.Tipo = TipoTransazione.Spesa;
                        }
                        else if (tipo == TipoTransazione.Ricavo.ToString())
                        {
                            nuovaTransazione.Tipo = TipoTransazione.Ricavo;
                        }
                        else
                        {
                            Console.WriteLine("Valore non concesso");
                            break;
                        }
                        Console.Write("Categoria transazione: ");

                        //voglio che scelga tra le categorie esistenti
                        //nuovaTransazione.Categoria = Console.ReadLine();
                        Console.WriteLine();
                        int index = 0;
                        foreach (ICategory cat in categorie)
                        {
                            index++;
                            Console.WriteLine(index + " " + cat.NomeCategoria);
                        }
                        int NumeroCategoria = int.Parse(Console.ReadLine()) - 1;
                        nuovaTransazione.Categoria = categorie.ElementAt(NumeroCategoria);


                        Console.Write("Descrizione transazione: ");
                        nuovaTransazione.Descrizione = Console.ReadLine();
                        Console.Write("Importo transazione: ");
                        string impTransazione = Console.ReadLine();
                        nuovaTransazione.Importo = decimal.Parse(impTransazione);

                        //transazioni.Add(nuovaTransazione);
                        TransactionManager.SaveTransaction(nuovaTransazione);
                    }
                    catch (FormatException fe)
                    {
                        Console.WriteLine("inserisci un numero");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Errore durante l'inserimento della transazione.");
                    }
                    break;

                case "c":
                case "cancella":

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                    }
                    else if (transazioni.Count() == 1)
                    {
                        Console.Write("Sei sicuro di voler procedere? (si/no): ");
                        opzione = Console.ReadLine();
                        Console.Clear();
                        if (opzione == "si")
                        {
                            //transazioni.RemoveAt(0);
                            TransactionManager.Delete(0);
                            Console.WriteLine("Elemento cancellato.");
                        }
                        else if (opzione == "no")
                        {
                            Console.WriteLine("Operazione annullata.");
                        }
                        else
                        {
                            Console.WriteLine("Opzione non valida.");
                        }
                    }
                    else
                    {
                        Console.Write("Qual è la posizione della transazione che vuoi cancellare? ");
                        opzione = Console.ReadLine();
                        try
                        {
                            int posizione = int.Parse(opzione);
                            if (posizione > 0 && posizione <= transazioni.Count())
                            {
                                Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                opzione = Console.ReadLine();
                                Console.Clear();
                                if (opzione == "si")
                                {
                                    //transazioni.RemoveAt(posizione - 1);
                                    TransactionManager.Delete(posizione - 1);
                                    Console.WriteLine("Elemento cancellato.");
                                }
                                else if (opzione == "no")
                                {
                                    Console.WriteLine("Operazione annullata.");
                                }
                                else
                                {
                                    Console.WriteLine("Opzione non valida.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + transazioni.Count() + ".");
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Errore durante la cancellazione.");
                        }
                    }
                    break;

                case "s":
                case "stampa":

                    if (transazioni.Count() == 0)
                    {
                        Console.WriteLine("Non ci sono transazioni.");
                    }

                    else
                    {
                        Console.Clear();
                        Console.Write("vuoi vedere tutte le transazioni? si/no  ");
                        opzione = Console.ReadLine();

                        if (opzione == "si")
                        {
                            int i = 0;
                            foreach (ITransazione transazione in transazioni)
                            {
                                //ITransazione transazione = transazioni[i];

                                Console.WriteLine("Transazione numero " + (i + 1));
                                Console.WriteLine(transazione);
                                Console.WriteLine();
                                i++;
                            }
                        }
                        else if (opzione == "no")
                        {
                            Console.Write("Di quale categoria vuoi vedere le transazioni? scrivi il nome:  ");
                            opzione = Console.ReadLine();
                            Console.WriteLine();

                            bool flag = false;

                            foreach (ITransazione transazione in transazioni)
                            {
                                if (transazione.Categoria.NomeCategoria == opzione)
                                {
                                    Console.WriteLine(transazione);
                                    flag = true;
                                }
                            }
                            if (flag == false)
                            {
                                Console.WriteLine("Non c'è una categoria con quel nome");
                            }
                        }
                    }
                    break;

                case "e":
                case "esci":
                    Console.Write("Sei sicuro di voler uscire? (si/no): ");
                    opzione = Console.ReadLine();
                    if (opzione == "si")
                    {
                        return;
                    }
                    if (opzione != "no")
                    {
                        Console.WriteLine("Opzione non riconosciuta.");
                    }
                    break;

                case "i":
                case "inserisci":
                    //Categoria c=new Categoria(;
                    ICategory nuovaCategoria = CategoryManager.CreateCategory();

                    Console.Write("Nome della categoria: ");
                    nuovaCategoria.NomeCategoria = Console.ReadLine();

                    bool controllo = false;

                    foreach (ICategory categoria in categorie)
                    {
                        if (nuovaCategoria.NomeCategoria == categoria.NomeCategoria)
                        {
                            Console.WriteLine(" \n nome categoria già presente");
                            controllo = true;
                        }
                    }
                    if (controllo == false)
                    {
                        Console.Write("\n Descrizione della categoria: ");
                        nuovaCategoria.Descrizione = Console.ReadLine();

                        CategoryManager.SaveCategory(nuovaCategoria);
                    }

                    break;

                case "v":
                case "vedere":
                    if (categorie.Count() == 0)
                    {
                        Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                        break;
                    }
                    Console.Clear();

                    int indice = 0;
                    foreach (ICategory cat in categorie)
                    {
                        indice++;
                        Console.WriteLine(indice + " " + cat.ToString());
                    }
                    break;

                case "r":
                case "rimuovi":
                    if (categorie.Count() == 0)
                    {
                        Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                    }
                    else if (categorie.Count() == 1)
                    {
                        foreach (ITransazione transazione in transazioni)
                        {
                            if (transazione.Categoria == categorie.ElementAt(0))
                            {
                                Console.WriteLine(transazione);
                            }
                        }
                        Console.Write("Sei sicuro di voler procedere? (si/no): ");
                        opzione = Console.ReadLine();
                        Console.Clear();
                        if (opzione == "si")
                        {
                            CategoryManager.Delete(0);
                            Console.WriteLine("Elemento cancellato.");
                        }
                        else if (opzione == "no")
                        {
                            Console.WriteLine("Operazione annullata.");
                        }
                        else
                        {
                            Console.WriteLine("Opzione non valida.");
                        }
                    }
                    else
                    {
                        Console.Write("Qual è la posizione della categoria che vuoi cancellare? ");
                        opzione = Console.ReadLine();
                        try
                        {
                            int posizione = int.Parse(opzione);
                            if (posizione > 0 && posizione <= categorie.Count())
                            {
                                foreach (ITransazione transazione in transazioni)
                                {
                                    if (transazione.Categoria == categorie.ElementAt(posizione - 1))
                                    {
                                        Console.WriteLine(transazione);
                                    }
                                }
                                Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                opzione = Console.ReadLine();
                                Console.Clear();
                                if (opzione == "si")
                                {
                                    CategoryManager.Delete(posizione - 1);
                                    Console.WriteLine("Elemento cancellato.");
                                }
                                else if (opzione == "no")
                                {
                                    Console.WriteLine("Operazione annullata.");
                                }
                                else
                                {
                                    Console.WriteLine("Opzione non valida.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + categorie.Count() + ".");
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Errore durante la cancellazione.");
                        }
                    }
                    break;

                default:
                    Console.WriteLine("Opzione non riconosciuta. Riprovare.");
                    break;
                }
            } while (true);
        }
Пример #4
0
        //public static void AggiungiCategorie(List<Categoria> Categorie)
        //{
        //    Categoria nuovaCategoria = new Categoria();
        //    Console.Write("Nome: ");
        //    nuovaCategoria.NomeCategoria = Console.ReadLine();

        //    Console.Write("Descrizione: ");
        //    nuovaCategoria.DescrizioneCategoria = Console.ReadLine();

        //    Categorie.Add(nuovaCategoria);
        //}

        public static void Main(string[] args)
        {
            string opzione = string.Empty;

            //List<Categoria> Categorie = new List<Categoria>();

            //List<ICategory> Categorie = new List<ICategory>();

            //List<ITransazione> transazioni = new List<ITransazione>();
            //ITransactionFactory factory = new TransactionFactory();



            do
            {
                Console.WriteLine("-Per operare sulle Transazioni scrivi: T \n-Per gestire una nuova Categoria scrivi: C \n-Per uscirE dal programma scrivi: E");
                string opzioneT = Console.ReadLine();
                Console.Clear();
                IEnumerable <ICategory> categorie = CategoryManager.GetCategories();


                if (opzioneT == "E" || opzioneT == "e")
                {
                    Console.Write("Sei sicuro di voler uscire? (si/no): ");
                    opzione = Console.ReadLine();
                    if (opzione == "si")
                    {
                        return;
                    }
                    if (opzione != "no")
                    {
                        Console.WriteLine("Opzione non riconosciuta.");
                    }
                }
                if (opzioneT == "T" || opzioneT == "t")
                {
                    StampaMenu();
                    Console.WriteLine();
                    Console.Write("cosa vuoi fare?: ");
                    opzione = Console.ReadLine();
                    Console.Clear();
                    IEnumerable <ITransazione> transazioni = TransactionManager.GetTransaziones();
                    switch (opzione)
                    {
                    case "m":
                    case "menu":
                        StampaMenu();
                        break;

                    case "a":
                    case "aggiungi":
                        try
                        {
                            //ITransazione nuovaTransazione = factory.Create();

                            ITransazione nuovaTransazione = TransactionManager.CreateTransaction();
                            Console.WriteLine();

                            Console.Write("Data transazione (MM/gg/aaaa): ");
                            string dtTransazione = Console.ReadLine();
                            nuovaTransazione.DataTransazione = DateTime.Parse(dtTransazione);

                            Console.Write("Tipo transazione (" + TipoTransazione.Spesa + "/" + TipoTransazione.Ricavo + ") :");
                            //nuovaTransazione.Tipo = Console.ReadLine();
                            string tipo = Console.ReadLine();
                            if (tipo == TipoTransazione.Spesa.ToString())
                            {
                                nuovaTransazione.Tipo = TipoTransazione.Spesa;
                            }
                            else if (tipo == TipoTransazione.Ricavo.ToString())
                            {
                                nuovaTransazione.Tipo = TipoTransazione.Ricavo;
                            }
                            else
                            {
                                Console.WriteLine("Valore non corretto.");
                            }


                            if (categorie.Count() == 0)
                            {
                                Console.Write("          Non esiste una categoria \n");
                                Console.Write("          Vuoi aggiungere una nuova categoria? si/no: ");
                                string scelta = Console.ReadLine();
                                if (scelta == "si")
                                {
                                    ICategory NuovaCategoria = CategoryManager.CreateCategory();
                                    Console.Write("          Nome: ");
                                    NuovaCategoria.NomeCategoria = Console.ReadLine();

                                    Console.Write("          Descrizione: ");
                                    NuovaCategoria.DescrizioneCategoria = Console.ReadLine();
                                    CategoryManager.AddCategory(NuovaCategoria);
                                    Console.WriteLine("          Categoria Aggiunta");
                                    nuovaTransazione.Categoria = NuovaCategoria;
                                }
                                else if (scelta == "no")
                                {
                                    Console.WriteLine("Operazione annullata.");
                                    break;
                                }
                            }
                            else
                            {
                                CategoryManager.StampCategory();
                                //Console.Write("Le categorie esistenti sono: ");

                                //foreach (Categoria categoria in Categorie)
                                //{
                                //    Console.Write(categoria.NomeCategoria + "\n");
                                //}

                                Console.Write("Vuoi usare una categoria Vecchia o crearne una Nuova? \nV = Vecchia \nN = Nuova: ");
                                string nuovaOpzione = Console.ReadLine();
                                if (nuovaOpzione == "N")
                                {
                                    ICategory NuovaCategoria = CategoryManager.CreateCategory();
                                    Console.Write("Nome: ");
                                    NuovaCategoria.NomeCategoria = Console.ReadLine();

                                    Console.Write("Descrizione: ");
                                    NuovaCategoria.DescrizioneCategoria = Console.ReadLine();
                                    CategoryManager.AddCategory(NuovaCategoria);
                                    Console.WriteLine("Categoria Aggiunta");
                                }

                                else if (nuovaOpzione == "V")
                                {
                                    Console.Write("Inserisci una vecchia categoria: ");
                                    string nomeCategoria = Console.ReadLine();

                                    foreach (Categoria k in categorie)
                                    {
                                        Console.Write(k + "\n");
                                        if (nomeCategoria == k.NomeCategoria)
                                        {
                                            nuovaTransazione.Categoria = k;
                                            break;
                                        }
                                    }

                                    if (nuovaTransazione.Categoria == null)
                                    {
                                        throw new Exception();
                                    }
                                }
                            }

                            Console.Write("Descrizione transazione: ");
                            nuovaTransazione.Descrizione = Console.ReadLine();
                            Console.Write("Importo transazione: ");
                            string impTransazione = Console.ReadLine();
                            nuovaTransazione.Importo = decimal.Parse(impTransazione);

                            //transazioni.Add(nuovaTransazione);
                            TransactionManager.SaveTransaction(nuovaTransazione);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Errore durante l'inserimento della transazione.");
                        }
                        break;

                    case "c":
                    case "cancella":

                        if (transazioni.Count() == 0)
                        {
                            Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                        }
                        else if (transazioni.Count() == 1)
                        {
                            Console.Write("Sei sicuro di voler procedere? (si/no): ");
                            opzione = Console.ReadLine();
                            if (opzione == "si")
                            {
                                //transazioni.RemoveAt(0);
                                TransactionManager.DeleteTransaction(0);
                                Console.WriteLine("Elemento cancellato.");
                            }
                            else if (opzione == "no")
                            {
                                Console.WriteLine("Operazione annullata.");
                            }
                            else
                            {
                                Console.WriteLine("Opzione non valida.");
                            }
                        }
                        else
                        {
                            Console.Write("Qual è la posizione della transazione che vuoi cancellare? ");
                            opzione = Console.ReadLine();
                            try
                            {
                                int posizione = int.Parse(opzione);
                                if (posizione > 0 && posizione <= transazioni.Count())
                                {
                                    Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                    opzione = Console.ReadLine();
                                    if (opzione == "si")
                                    {
                                        //transazioni.RemoveAt(posizione - 1);
                                        TransactionManager.DeleteTransaction(posizione - 1);

                                        Console.WriteLine("Elemento cancellato.");
                                    }
                                    else if (opzione == "no")
                                    {
                                        Console.WriteLine("Operazione annullata.");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Opzione non valida.");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + transazioni.Count() + ".");
                                }
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Errore durante la cancellazione.");
                            }
                        }
                        break;

                    case "s":
                    case "stampa":
                        if (transazioni.Count() == 0)
                        {
                            Console.WriteLine("Non ci sono transazioni.");
                        }
                        else
                        {
                            int i = 0;
                            foreach (ITransazione transazione in transazioni)
                            {
                                Console.WriteLine((i + 1) + ":");
                                Console.WriteLine(transazione);
                                Console.WriteLine();
                                i++;
                            }
                        }
                        break;

                    default:
                        Console.WriteLine("Opzione non riconosciuta. Riprovare.");
                        break;
                    }
                }



                if (opzioneT == "C" || opzioneT == "c")
                {
                    Console.WriteLine();
                    Console.Write("Cosa vuoi fare?: ");
                    Console.WriteLine();
                    Console.WriteLine("A Add \nD Delete \nS Stamp: ");
                    string opzioneC = Console.ReadLine();
                    switch (opzioneC)
                    {
                    case "a":
                    case "A":
                        ICategory NuovaCategoria = CategoryManager.CreateCategory();
                        Console.Write("Nome: ");
                        NuovaCategoria.NomeCategoria = Console.ReadLine();

                        Console.Write("Descrizione: ");
                        NuovaCategoria.DescrizioneCategoria = Console.ReadLine();
                        CategoryManager.AddCategory(NuovaCategoria);
                        Console.WriteLine("Categoria Aggiunta");


                        break;



                    case "d":
                    case "D":

                        if (categorie.Count() == 0)
                        {
                            Console.WriteLine("Questa opzione non è disponibile. La lista è vuota.");
                        }
                        else if (categorie.Count() == 1)
                        {
                            Console.Write("Sei sicuro di voler procedere? (si/no): ");
                            opzione = Console.ReadLine();
                            if (opzione == "si")
                            {
                                CategoryManager.DeleteCategory(0);

                                Console.WriteLine("Elemento cancellato.");
                            }
                            else if (opzione == "no")
                            {
                                Console.WriteLine("Operazione annullata.");
                            }
                            else
                            {
                                Console.WriteLine("Opzione non valida.");
                            }
                        }
                        else
                        {
                            Console.Write("Qual è la posizione della categoria che vuoi cancellare? ");
                            opzione = Console.ReadLine();
                            try
                            {
                                int posizione = int.Parse(opzione);
                                if (posizione > 0 && posizione <= categorie.Count())
                                {
                                    Console.Write("Sei sicuro di voler procedere? (si/no): ");
                                    opzione = Console.ReadLine();
                                    if (opzione == "si")
                                    {
                                        //transazioni.RemoveAt(posizione - 1);
                                        CategoryManager.DeleteCategory(posizione);

                                        Console.WriteLine("Elemento cancellato.");
                                    }
                                    else if (opzione == "no")
                                    {
                                        Console.WriteLine("Operazione annullata.");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Opzione non valida.");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Posizione non valida. Le posizioni valide sono da 1 a " + categorie.Count() + ".");
                                }
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Errore durante la cancellazione.");
                            }
                        }
                        break;



                    case "s":
                    case "S":
                        if (categorie.Count() == 0)
                        {
                            Console.WriteLine("Non ci sono categorie.");
                        }
                        else
                        {
                            CategoryManager.StampCategory();
                        }
                        break;
                    }
                }
            } while (true);
        }
Пример #5
0
 public int OttieniIndice(ITransazione t)
 {
     return(Transazioni.IndexOf(t));
 }
Пример #6
0
 public void SaveTransaction(ITransazione transazione)
 {
     Transazioni.Add(transazione);
 }