Exemple #1
0
        /// <summary>
        /// Used to request rebates
        /// </summary>
        public void Rebate()
        {
            bool valid = false;
            int  ID    = 0;

            while (!valid)
            {
                Console.Write("Enter the Sales ID: ");
                valid = int.TryParse(Console.ReadLine(), out ID);
            }
            Console.Write("\nEnter the date(MM/DD): ");
            DateTime date           = new DateTime();
            bool     successfulDate = false;

            while (!successfulDate)
            {
                try
                {
                    date           = Convert.ToDateTime(Console.ReadLine());
                    successfulDate = true;
                }
                catch (Exception err)
                {
                    Console.WriteLine("Enter a valid date.");
                }
            }
            bool rebateBool = false;

            while (!rebateBool)
            {
                try
                {
                    _hER(ID, date);
                    rebateBool = true;
                }
                catch (Exception ex)
                {
                    Console.WriteLine("\nEnter valid ID: ");
                    int.TryParse(Console.ReadLine(), out ID);
                }
            }

            if (_rm.GetCurrentState() != RebateModelState.RebateEnterError)
            {
                Console.Write("\nSales ID\tTotal\tRebate Amount\n");
                List <Sale> rebates = _rm.GetUngeneratedRebates();
                foreach (Sale s in rebates)
                {
                    double total = s.Total();
                    Console.Write("\n{0}\t\t{1}\t\t{2}", s.ID, total.ToString("C"), s.RebateAmount.ToString("C"));
                }
                Console.WriteLine("\nRebates requested.");
            }
            else
            {
                Console.WriteLine("There was an error. {0}", _rm.Error);
            }
        }
Exemple #2
0
        /// <summary>
        /// Update's the output view according to the current state.
        /// </summary>
        public void update()
        {
            RebateModelState state = _rebateModel.GetCurrentState();

            switch (state)
            {
            case RebateModelState.Initial:
                uxRebateList.Items.Clear();
                uxRebateCheckList.Items.Clear();
                break;

            case RebateModelState.RebateGenerated:
                List <Sale> rebates = _rebateModel.GetUngeneratedRebates();

                uxRebateList.Items.Clear();
                foreach (Sale sale in rebates)
                {
                    uxRebateList.Items.Add(new ListViewItem(new[] { sale.ID.ToString(), String.Format("{0:c}", sale.Total()), String.Format("{0:c}", sale.RebateAmount) }));
                }
                break;

            case RebateModelState.RebateChecksGenerated:
                MessageBox.Show("Rebate checks generated and sent", "Success");

                uxRebateList.Items.Clear();
                uxRebateCheckList.Items.Clear();

                foreach (Sale sale in _rebateModel.GetGeneratedRebates())
                {
                    uxRebateCheckList.Items.Add(new ListViewItem(new[] { sale.ID.ToString(), String.Format("{0:c}", sale.Total()), String.Format("{0:c}", sale.RebateAmount) }));
                }
                break;

            case RebateModelState.RebateEnterError:
                MessageBox.Show(_rebateModel.Error);

                _rebateModel.State = RebateModelState.Initial;
                update();
                break;
            }
        }