Example #1
0
        /// <summary>
        /// Metodo per la creazione delle classi derivate di Movement
        /// </summary>
        /// <returns></returns>
        public static Movement FactoryMovement()
        {
            Movement movement = null;
            bool     flag     = true;

            do
            {
                int input;

                Console.WriteLine("Che tipo di movimento vuoi effettuare? Premi: \n 0 per Cash Movement \n 1 per Credit Card Movement \n 2 per Transfert Movement");
                while (!int.TryParse(Console.ReadLine(), out input))
                {
                    Console.WriteLine("Input non corretto");
                    Console.WriteLine(" Premi: \n 0 per Cash Movement \n 1 per Credit Card Movement \n 2 per Transfert Movement");
                }



                switch (input)
                {
                case 0:
                    movement = CashMovement.Create();
                    break;

                case 1:
                    movement = CreditCardMovement.Create();
                    break;

                case 2:
                    movement = TransfertMovement.Create();
                    break;

                default:
                    Console.WriteLine("Input non corretto");
                    flag = false;
                    break;
                }
            } while (flag == false);



            return(movement);
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("=== Account =====");
            Account account = new Account(
                123456,
                "Banca Popolare di Lodi",
                1000
                );

            #region Test

            Movement transfertMovement = new TransfertMovement(
                500,
                "Pop Vicenza",
                "Banca Popolare di Lodi"
                );
            account += transfertMovement;

            Movement cashMovement = new CashMovement(
                100,
                "Roberto Ajolfi"
                );
            account -= cashMovement;

            Movement ccMovement = new CreditCardMovement(
                230,
                CreditCardMovement.CreditCardType.AMEX,
                "9999-1234-1234-0001"
                );
            account -= ccMovement;

            #endregion

            #region Interactive Mode

            //bool next = true;
            //while (next)
            //{
            //    Console.Write("Amount: ");
            //    string amountString = Console.ReadLine();
            //    double.TryParse(amountString, out double amount);

            //    Console.Write("[I]n / [O]ut: ");
            //    string inOut = Console.ReadLine();

            //    Console.Write("Type ([C]Cash / [CC] / [T]ransfer: ");
            //    string type = Console.ReadLine();



            //    Movement movement;
            //    switch (type.ToUpper())
            //    {
            //        case "C":
            //            movement = new CashMovement(amount, "Roberto A.");
            //            break;
            //        case "CC":
            //            movement = new CreditCardMovement(
            //                amount,
            //                CreditCardMovement.CreditCardType.AMEX,
            //                "9999-12345-1234"
            //            );
            //            break;
            //        case "T":
            //            movement = new TransfertMovement(
            //                amount,
            //                "Pop Lodi",
            //                "Pop Vicenza"
            //            );
            //            break;
            //        default:
            //            movement = null;
            //            break;
            //    }

            //    if (movement != null)
            //        if (inOut.ToUpper() == "I")
            //            account += movement;
            //        else
            //            account -= movement;

            //    Console.Write("Ancora (S/N)?");
            //    string again = Console.ReadLine();
            //    next = (again.ToUpper() == "S");
            //}

            //Console.WriteLine("----------------------------------");
            //Console.WriteLine();
            //Console.WriteLine();

            #endregion

            Console.WriteLine(account.Statement());
        }
Example #3
0
        static void Main(string[] args)
        {
            Random rand        = new Random();
            int    bancomatNum = rand.Next(11, 9999);

            Account <Movement> myBankAccount = new Account <Movement>("00001AYH182", "Morgan Stanley");
            bool exit = false;

            while (!exit)
            {
                Console.WriteLine("BENVENUTO/A AL BANCOMAT MORGAN STANLEY N. 00C" + bancomatNum);
                Thread.Sleep(1000);
                Console.WriteLine("Scegli che tipo di movimento vuole effettuare:");
                Console.WriteLine("-1 Cash Movement\n" +
                                  "-2 Transfert Movement\n" +
                                  "-3 Credit Card Movement");
                int x = int.Parse(Console.ReadLine());
                switch (x)
                {
                case 1:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double cashAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string cashSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca chi effettua l'operazione:");
                    string       performer = Console.ReadLine();
                    CashMovement cash      = new CashMovement(new Movement(cashAmount), performer);

                    if (cashSign.Equals("+"))
                    {
                        myBankAccount += cash;
                    }
                    else if (cashSign.Equals("-"))
                    {
                        myBankAccount -= cash;
                        cash.Amount   *= -1.0;
                    }
                    break;

                case 2:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double transfertAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string transfertSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca l'istituto emittente:");
                    string source = Console.ReadLine();
                    Console.WriteLine("Per favore inserisca l'istituto destinatario:");
                    string            dest      = Console.ReadLine();
                    TransfertMovement transfert = new TransfertMovement(new Movement(transfertAmount), source, dest);

                    if (transfertSign.Equals("+"))
                    {
                        myBankAccount += transfert;
                    }
                    else if (transfertSign.Equals("-"))
                    {
                        myBankAccount    -= transfert;
                        transfert.Amount *= -1.0;
                    }
                    break;

                case 3:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double cardAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string cardSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca l'emittente della carta scegliendo tra:");
                    Console.WriteLine("-AMEX\n" +
                                      "-VISA\n" +
                                      "-MASTER CARD\n" +
                                      "-OTHER");
                    Kind kind;
                    try
                    {
                        kind = (Kind)Enum.Parse(typeof(Kind), Console.ReadLine().Trim().Replace(" ", ""), true);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Ci dispiace, ma non è stato possibile individuare l'istituto emittente;\n" +
                                          "per favore ripeta la procedura digitando correttamente il nome dell'emittente\n");
                        Thread.Sleep(2500);
                        goto case 3;
                    }
                    Console.WriteLine("Per favore inserisca il numero di carta:");
                    string             cardNo     = Console.ReadLine();
                    CreditCardMovement creditCard = new CreditCardMovement(new Movement(cardAmount), kind, cardNo);

                    if (cardSign.Equals("+"))
                    {
                        myBankAccount += creditCard;
                    }
                    else if (cardSign.Equals("-"))
                    {
                        myBankAccount     -= creditCard;
                        creditCard.Amount *= -1.0;
                    }
                    break;

                default:
                    Console.WriteLine("Per favore inserisca un numero corrispondente al tipo di operazione");
                    break;
                }

                Console.WriteLine("Se vuole inserire un'altro movimento premi invio altrimenti prema Q");
                if (Console.ReadLine().ToLower().Equals("q"))
                {
                    exit = true;
                }
                Console.Clear();
            }

            Console.WriteLine("Vuole stampare il dettaglio del suo conto con annessa lista dei movimenti?   Y/N");
            if (Console.ReadLine().ToLower().Equals("y"))
            {
                Console.Clear();
                myBankAccount.Statement();
            }
        }
        static void Main(string[] args)
        {
            int x = 0;

            Console.WriteLine("Benvenuto sul Menu");

            //Creazione Account
            Account account = new Account();

            Console.WriteLine("Inserisci il nome della banca");
            account.NomeBanca = Console.ReadLine();
            Console.WriteLine("Inserisci il numero del conto");
            do
            {
                try
                {
                    x = 1;
                    int numeroConto = Convert.ToInt32(Console.ReadLine());
                    account.NumeroConto = numeroConto.ToString();
                }
                catch
                {
                    Console.WriteLine("Numero non valido, riprova");
                    x = 0;
                }
            } while (x == 0);

            Console.WriteLine(account);
            x = 0;

            do
            {
                Console.WriteLine("Movimenti Bancari");

                Console.WriteLine("Inserisci il tipo di movimento che vuoi eseguire:");
                Console.WriteLine("1 - Cash Movement");
                Console.WriteLine("2 - Credit Card Movement");
                Console.WriteLine("3 - Transfert Movement");
                Console.WriteLine("4 - Stampare la lista dei movimenti");
                Console.WriteLine("Premi un tasto per uscire");

                char c = Console.ReadKey().KeyChar;
                Console.WriteLine();

                switch (c)
                {
                case '1':
                    CashMovement movimento = new CashMovement();
                    Console.WriteLine("Inserisci l'esecutore del movimento");
                    movimento.Esecutore = Console.ReadLine();
                    GestioneMovimenti <CashMovement> .Gestione(movimento, account);

                    Console.WriteLine(movimento);
                    break;

                case '2':
                    CreditCardMovement creditCardMovement = new CreditCardMovement();

                    creditCardMovement.NumeroCarta = creditCardMovement.ControlloNumeroCarta();
                    Console.WriteLine($"Inserisci il tipo della carta: {Tipo.Amex}, {Tipo.Mastercard}, {Tipo.Visa}, {Tipo.Other}");
                    creditCardMovement.Tipo = creditCardMovement.ControlloCarta(Console.ReadLine());
                    GestioneMovimenti <CreditCardMovement> .Gestione(creditCardMovement, account);

                    Console.WriteLine(creditCardMovement);
                    break;

                case '3':
                    TransfertMovement trasferimento = new TransfertMovement();
                    Console.WriteLine("Inserisci la banca di destinazione");
                    trasferimento.BancaDestinazione = Console.ReadLine();
                    trasferimento.BancaOrigine      = account.NomeBanca;
                    GestioneMovimenti <TransfertMovement> .Gestione(trasferimento, account);

                    Console.WriteLine(trasferimento);
                    break;

                case '4':
                    account.Statement();
                    break;

                default:
                    x = 1;
                    Console.WriteLine();
                    break;
                }
            } while (x == 0);

            Console.WriteLine("Operazioni Terminate");
        }
Example #5
0
        public static void BankMenù(Account <Movement> account)
        {
menu:
            Console.WriteLine("Choose one option: \n" +
                              "Register a cash transaction - press C\n" +
                              "Register a transfer transaction - press T\n" +
                              "Register a credit card transaction - press R\n" +
                              "Check all transaction - press P\n" +
                              "Quit - press Q");
            string answer = Console.ReadLine();

            switch (answer)
            {
            case "c":     //cash
                Movement m1 = StartingDataMovement();
                Console.WriteLine("Insert the Esecutor");
                string       Esec = Console.ReadLine();
                CashMovement cm   = new CashMovement(m1.MovementAmount, m1.MovementDate, m1.isIncome, Esec);
                DoTransaction(cm, account);
                goto menu;


            case "t":     // transfer
                Movement m2 = StartingDataMovement();
                Console.WriteLine("Insert the origin bank:");
                string ob = Console.ReadLine();
                Console.WriteLine("Insert the destination bank:");
                string            db = Console.ReadLine();
                TransfertMovement tm = new TransfertMovement(m2.MovementAmount, m2.MovementDate, m2.isIncome, ob, db);
                DoTransaction(tm, account);
                goto menu;


            case "r":         //credit card
                Movement m3 = StartingDataMovement();
insertcard:
                Console.WriteLine("Insert the cardType\n" +
                                  "AMEX - press A\n" +
                                  "VISA - press V\n" +
                                  "MASTERCARD - press M" +
                                  "OTHER -press O");
                string   cardtype = Console.ReadLine();
                CardType ct;
                if (cardtype == "a" || cardtype == "v" || cardtype == "m" || cardtype == "o")
                {
                    ct = type(cardtype);
                }
                else
                {
                    goto insertcard;
                }
                Console.WriteLine("Insert the card number ");
                string             cn  = Console.ReadLine();
                CreditCardMovement ccm = new CreditCardMovement(m3.MovementAmount, m3.MovementDate, m3.isIncome, cn, ct);
                DoTransaction(ccm, account);
                goto menu;


            case "p":
                account.statement();
                goto menu;

            case "q":
                return;
            }
        }