/// <summary> /// Метод для продажи билета (typeTicket) клиенту (Client) на спектакль (Performance) /// </summary> /// <param name="client"></param> /// <param name="performance"></param> /// <param name="type"></param> public void SaleTicket(Client client, Performance performance, typeTicket type) { bool checkClient = false; for (int i = 0; i < performances.Count; i++) { if (performances[i] == performance) { performances[i].DeleteTicket(type); } } for (int i = 0; i < clients.Count(); i++) { if (clients[i] == client) { checkClient = true; clients[i].AddTicket(SwitchTicket(ref performance, type)); } } if (checkClient == false) { clients.Add(new Client(client.fullName)); clients.Last().AddTicket(SwitchTicket(ref performance, type)); } }
/// <summary> /// Метод удаляет один билет данного спектакля /// </summary> /// <param name="ticket"></param> public void DeleteTicket(typeTicket type) { for (int i = 0; i < tickets.Count(); i++) { if (tickets[i].type == type) { tickets.RemoveAt(i); break; } } }
public bool DeleteTicket(string namePerformace, DateTime date, typeTicket type) { for (int i = 0; i < tickets.Count(); i++) { if (String.Equals(namePerformace, tickets[i].namePerformance) && type == tickets[i].type && tickets[i].date.Year == date.Year && tickets[i].date.Month == date.Month && tickets[i].date.Day == date.Day) { tickets.RemoveAt(i); SetStatus(); return(true); } } return(false); }
/// <summary> /// Метод возвращает тип билета (string) в качестве аргумента принимает typeTicket /// </summary> /// <param name="type"></param> /// <returns></returns> public static string FindTicket(typeTicket type) { if (type == typeTicket.parterre) { return("Партерр"); } else if (type == typeTicket.balcony) { return("Балкон"); } else { return("Ложа"); } }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { string performanceName = performancesComboBox.SelectedValue.ToString(); string clientName = clientsComboBox.SelectedValue.ToString(); DateTime date = ConvertStringToDateTime(dateComboBox.SelectedValue.ToString()); typeTicket type = Cashbox.FindTicket(typeComboBox.SelectedValue.ToString()); if (cashbox.ReturnTicket(performanceName, date, clientName, type)) { msgTextBlock.Text = "Билет успешно сдан в кассу."; } else { msgTextBlock.Text = "Не найден данный билет, на указанный спектакль."; } }
public void AddTicket(typeTicket type) { switch (type) { case (typeTicket.balcony): tickets.Add(new Balcony(name, date)); break; case (typeTicket.lodge): tickets.Add(new Lodge(name, date)); break; default: tickets.Add(new Parterre(name, date)); break; } }
/// <summary> /// Метод возвращает билет (Ticket) для указаного спектакля и типа билета /// </summary> /// <param name="performance"></param> /// <param name="type"></param> /// <returns></returns> public Ticket SwitchTicket(ref Performance performance, typeTicket type) { switch (type) { case typeTicket.parterre: return(new Parterre(performance.name, performance.date)); case typeTicket.balcony: return(new Balcony(performance.name, performance.date)); case typeTicket.lodge: return(new Lodge(performance.name, performance.date)); default: return(null); } }
private void BuyTicketButton_Click(object sender, RoutedEventArgs e) { if (nameInputBox.Text.Length > 0 && comboPerformanceBox.Text.Length > 0 && comboDateBox.Text.Length > 0 && comboTypeBox.Text.Length > 0) { string fullname = nameInputBox.Text; string performanceName = comboPerformanceBox.Text; typeTicket type = Cashbox.FindTicket(comboTypeBox.Text.Split()[0].ToLower()); DateTime date = ConvertStringToDateTime(comboDateBox.Text); cashbox.SaleTicket(new Client(fullname), new Performance(performanceName, date), type); sumTicketBox.Text = "Билет успешно куплен на спектакль \"" + performanceName + "\", который пройдёт: " + comboDateBox.Text; } else { sumTicketBox.Text = "Не все поля заполнены"; } }
public bool ReturnTicket(string performanceName, DateTime date, string clientName, typeTicket type) { foreach (Client client in clients) { if (String.Equals(client.fullName, clientName)) { if (client.DeleteTicket(performanceName, date, type)) { for (int i = 0; i < performances.Count(); i++) { if (String.Equals(performances[i], performanceName) && performances[i].date == date) { performances[i].AddTicket(type); break; } } return(true); } } } return(false); }