コード例 #1
0
        /// <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));
            }
        }
コード例 #2
0
 /// <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;
         }
     }
 }
コード例 #3
0
ファイル: Client.cs プロジェクト: default-INT/oop-4sem-labs
 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);
 }
コード例 #4
0
 /// <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("Ложа");
     }
 }
コード例 #5
0
        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 = "Не найден данный билет, на указанный спектакль.";
            }
        }
コード例 #6
0
        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;
            }
        }
コード例 #7
0
        /// <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);
            }
        }
コード例 #8
0
        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 = "Не все поля заполнены";
            }
        }
コード例 #9
0
 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);
 }