コード例 #1
0
        /*!
         *  \brief  Remove the selected ticket (if any) from the lottery.
         *
         *  If no ticket is selected, the function does nothing besides showing an error message.
         *  If removing the selected ticket leaves the list empty, the add-comment button
         *  and delete-ticket button are disabled.
         */
        private void BtnRemoveTicket_Click(object sender, RoutedEventArgs e)
        {
            if (!HasTicketSelected())
            {
                return;
            }

            var ticket = (Ticket)LwTickets.SelectedItem;

            if (WndDialogMessage.Show(this, "Do you want to delete this ticket?\n\nLottery number: " + ticket.LotteryNumber, "Confirm Delete", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
            {
                return;
            }

            CurrentLottery.RemoveTicket(ticket);
            LwTickets.Items.Remove(ticket);

            var oldPrice = int.Parse(TxtPrize.Text);

            TxtPrize.Text = "" + (oldPrice - ticket.Price);

            if (LwTickets.Items.Count < 1)
            {
                BtnAddComment.IsEnabled   = false;
                BtnRemoveTicket.IsEnabled = false;
            }
        }
コード例 #2
0
 //! Discards the tickets on the window closing if member DiscardTicketsOnClose is true.
 private void NewTicketsWindow_OnClosing(object sender, CancelEventArgs e)
 {
     if (DiscardTicketsOnClose)
     {
         foreach (Ticket ticket in LwTickets.Items)
         {
             CurrentLottery.RemoveTicket(ticket);
         }
     }
     if (Owner != null)
     {
         Owner.IsEnabled = true;
     }
 }
コード例 #3
0
        //! Attempt to add a new ticket, either with a random or specific lottery number.
        private void BtnAddTicket_Click(object sender, RoutedEventArgs e)
        {
            int actualLotteryNumber;

            if (BuyRandomLotteryNumber)
            {
                actualLotteryNumber = CurrentLottery.BuyLotteryNumber(TxtOwner.Text);
                // Makes sure that there was a ticket left to buy.
                if (actualLotteryNumber == Lottery.InvalidLotteryNumber)
                {
                    WndDialogMessage.Show(this, "No more tickets available.", "No tickets left", MessageBoxButton.OK,
                                          MessageBoxImage.Information);
                    return;
                }
            }
            else
            {
                if (string.IsNullOrEmpty(TxtSpecificLotteryNumber.Text))
                {
                    WndDialogMessage.Show(this, "No lottery number given.\nIf you want a random one, check the random box.",
                                          "Missing Number", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                var userLotteryNumber = int.Parse(TxtSpecificLotteryNumber.Text);
                var result            = CurrentLottery.BuyLotteryNumber(userLotteryNumber, TxtOwner.Text);
                switch (result)
                {
                case LotteryNumberSaleResult.Success:
                    actualLotteryNumber = userLotteryNumber;
                    break;

                case LotteryNumberSaleResult.NumberAlreadySold:
                    WndDialogMessage.Show(this, "The number has already been sold.", "Number Unavailable",
                                          MessageBoxButton.OK, MessageBoxImage.Information);
                    return;

                case LotteryNumberSaleResult.NumberOutOfRange:
                    var msg = "The number is not in the alllowed range: " + Lottery.LotteryNumberMin + " - " +
                              CurrentLottery.LotteryNumberMax + ".";
                    WndDialogMessage.Show(this, msg, "Invalid Number", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;

                default:
                    WndDialogMessage.Show(this, "An unspecified error occured.", "Unspecified Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }

            // Add to list and update the tottal price.
            var ticket = CurrentLottery.Tickets.Find(T => T.LotteryNumber == actualLotteryNumber);

            LwTickets.Items.Add(ticket);
            LwTickets.ScrollIntoView(ticket);
            var oldPrice = int.Parse(TxtPrize.Text);

            TxtPrize.Text = "" + (oldPrice + ticket.Price);

            // Enabled the buttons for the list of tickets.
            BtnAddComment.IsEnabled   = true;
            BtnRemoveTicket.IsEnabled = true;
        }