private void ButtonBuy_Click(object sender, EventArgs e) { IPaymentMethod paymentMethod = (IPaymentMethod)ComboPaymentMethod.SelectedItem; int numberOfTickets = (int)NumericUpDownTickets.Value; if (numberOfTickets > socialEvent.GetAmountOfAvailableTickets()) { MessageBox.Show($"Only {socialEvent.GetAmountOfAvailableTickets()} tickets available!"); return; } int price = numberOfTickets * socialEvent.PricePerTicket; if (paymentMethod.PayForItem(socialEvent.Name, price)) { List <Ticket> tickets = new List <Ticket>(); for (int i = 0; i < numberOfTickets; i++) { tickets.Add(new Ticket(socialEvent)); } UpdateAvailableTicketsTextBox(); Receipt receipt = new Receipt(numberOfTickets, tickets[0], "nok", paymentMethod.ToString()); MessageBox.Show(receipt.GenerateReceipt(), "Your purchase was successful"); } else { MessageBox.Show("Failed to buy tickets", paymentMethod.ToString()); } }