/// <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); }
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()); }
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"); }
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; } }