Esempio n. 1
0
        private AVAT SelectVAT(List <AVAT> availableVATS)
        {
            AVAT selectedVAT = null;

            while (selectedVAT is null)
            {
                bool converted = int.TryParse(_guiHandler.AskForText("Seleziona una P.IVA: "), out int userSelection);
                if (converted)
                {
                    ///Ricerca se P.IVA in lista
                    foreach (var vat in availableVATS)
                    {
                        if (vat.VatNumber == userSelection)
                        {
                            selectedVAT = vat;
                            break;
                        }
                    }
                }
                if (!converted || selectedVAT == null)
                {
                    _guiHandler.WriteMessage("La tua selezione non corrisponde ad una P.IVA disponibile", Color.Red);
                    ShowAvailableVATS(availableVATS);
                }
            }

            return(selectedVAT);
        }
Esempio n. 2
0
        private Options ReadOption(AVAT selectedVAT)
        {
            Options selectedOption = 0;

            while (selectedOption == 0)
            {
                ShowMain();
                ShowSelectedVAT(selectedVAT);

                _guiHandler.WriteMessage("****************************************");
                _guiHandler.WriteMessage("1) Seleziona P.IVA");
                _guiHandler.WriteMessage("2) Aggiungi Bill a P.IVA");
                _guiHandler.WriteMessage("3) Aggiungi Expense a P.IVA");
                _guiHandler.WriteMessage("4) Calcola guadagno netto");
                _guiHandler.WriteMessage("5) Elenca tutte le P.IVA");
                _guiHandler.WriteMessage("6) Esci");
                _guiHandler.WriteMessage("****************************************");

                _guiHandler.WriteMessage();
                _guiHandler.WriteMessage("Seleziona un opzione: ");

                bool validConversion = int.TryParse(Console.ReadLine(), out int userSelection);
                if (!validConversion || userSelection < 1 || userSelection > 6)
                {
                    selectedOption = 0;
                    _guiHandler.WriteMessage("L'opzione selezionata non è valida!", Color.Red);
                    Console.ReadKey(true);
                }
                else
                {
                    selectedOption = (Options)userSelection;
                }
            }
            return(selectedOption);
        }
Esempio n. 3
0
 private bool IsVATSelected(ref AVAT selectedVAT, List <AVAT> availableVATS)
 {
     while (selectedVAT == null)
     {
         _guiHandler.WriteMessage("Non è stata selezionata nessuna P.IVA!", Color.Red);
         selectedVAT = SelectVAT(availableVATS);
     }
     return(true);
 }
Esempio n. 4
0
        private void ShowSelectedVAT(AVAT selectedVAT)
        {
            int selPIVA = 0;

            if (selectedVAT != null)
            {
                selPIVA = selectedVAT.VatNumber;
            }
            if (selPIVA != 0)
            {
                _guiHandler.WriteMessage($" - La P.IVA selezionata è: {selPIVA} -", Color.Green);
                _guiHandler.WriteMessage();
            }
        }
Esempio n. 5
0
        public override void Run(IGUI guiHandler)
        {
            _guiHandler = guiHandler ?? throw new ArgumentNullException(nameof(guiHandler));
            bool _exit = false;

            List <AVAT> availableVATS = GenerateMockList();
            AVAT        selectedVAT   = null;

            //List<Option> options = new List<Option>();
            //options.Add(new Option() {Code = "1", Description = "Seleziona P.IVA", Operation = SelectVAT });

            ShowMain();
            while (!_exit)
            {
                Options option = ReadOption(selectedVAT);
                switch (option)
                {
                default:
                    ///NON DOVREBBE MAI ACCADERE
                    break;

                case Options.SelezionaPartitaIVA:
                    selectedVAT = SelectVAT(availableVATS);
                    break;

                case Options.AggiungiBill:
                    if (IsVATSelected(ref selectedVAT, availableVATS))
                    {
                        decimal bill = _guiHandler.AskForDecimal("Inserisci il valore della bill da aggiungere: ");
                        if (bill > 0)
                        {
                            selectedVAT.AddBill(bill);
                        }
                    }
                    break;

                case Options.AggiungiExpense:
                    if (IsVATSelected(ref selectedVAT, availableVATS))
                    {
                        decimal expence = _guiHandler.AskForDecimal("Inserisci il valore della spesa da aggiungere: ");
                        if (expence > 0)
                        {
                            try
                            {
                                selectedVAT.AddExpense(expence);
                            }
                            catch (Exception)
                            {
                                _guiHandler.WriteMessage($"Non posso aggiungere una spesa a questo tipo di P.IVA ({selectedVAT.GetType().Name})", Color.Orange);
                                _guiHandler.AskForKey(true);
                            }
                        }
                    }
                    break;

                case Options.CalcolaGuadagnoNetto:
                    if (IsVATSelected(ref selectedVAT, availableVATS))
                    {
                        _guiHandler.WriteMessage(selectedVAT.CalculateAndPrint());
                        _guiHandler.AskForKey(true);
                    }
                    break;

                case Options.ElencaPartiteIVA:
                    ShowAvailableVATS(availableVATS);
                    _guiHandler.AskForKey(true);
                    break;

                case Options.Exit:
                    _exit = true;
                    return;
                }

                // _exit = _guiHandler.AskForExit();
            }
        }