Ejemplo n.º 1
0
        // Регистрация клиентов
        static void RegistrationClients()
        {
            try
            {
                Clear();
                if (hostel == null)
                {
                    WriteLine("Отель не создан!");
                    ReadLine();
                    Clear();
                    Menu();
                }
                Write("Введите имя: ");
                string name = ReadLine();
                Write("Введите фамилию: ");
                string surname = ReadLine();
                Write("Введите отчество: ");
                string lastName = ReadLine();
restart:
                Write("Полных лет: ");
                int age = ToInt32(ReadLine());
                if (age < 18)
                {
                    WriteLine("Клиенту меньше 18. Попробуйте снова.");
                    goto restart;
                }
                Write("Дата рождения: ");
                DateTime dB   = ToDateTime(ReadLine());
                int      temp = DateTime.Now.Year - dB.Year;
                if (temp != age)
                {
                    WriteLine("Год рождения не совпадает с датой. Попробуйте снова.");
                    goto restart;
                }
                Write("Введите адрес проживания: ");
                string address = ReadLine();
restart2:
                WriteLine("Пол: Ж, М?");
                char sex = ToChar(ReadLine());
                if (sex != 1046 && sex != 1052 && sex != 1078 && sex != 1084)
                {
                    Write("Некорректно введён пол. Попробуйте снова.");
                    goto restart2;
                }
restart3:
                Write("Введите дату заезда: ");
                DateTime dStayInHotel1 = ToDateTime(ReadLine());
                Write("Введите дату выезда: ");
                DateTime dStayInHotel2 = ToDateTime(ReadLine());
                if (DateTime.Now.Year > dStayInHotel1.Year && DateTime.Now.Year < dStayInHotel1.Year ||
                    DateTime.Now.Year > dStayInHotel2.Year && DateTime.Now.Year < dStayInHotel2.Year ||
                    dStayInHotel1 > dStayInHotel2)
                {
                    WriteLine("Введена некорректная дата заезда или выезда. Попробуйте снова.");
                    goto restart3;
                }
                if (dStayInHotel2.Day - dStayInHotel2.Day > 20)
                {
                    WriteLine("Нельзя останавливаться в отеле более чем на 20 дней. Попробуйте снова.");
                    goto restart3;
                }
                if (name != null && surname != null && lastName != null && address != null)
                {
                    if (CountClients != 100)
                    {
restart5:
                        Clear();
                        WriteLine("------------Типы номеров------------");
                        WriteLine("1. Standart;");
                        WriteLine("2. Economy;");
                        WriteLine("3. JuniorSuite;");
                        WriteLine("4. Luxe.");
                        WriteLine("В какой хотите поселиться?");
                        int             tt = ToInt32(ReadLine());
                        RoomCathegories roomCathegories = RoomCathegories.Standart;
                        double          salary          = 0;
                        switch (tt)
                        {
                        case 1:
                            roomCathegories = RoomCathegories.Standart;
                            salary          = hostel.RoomRate(dStayInHotel1, dStayInHotel2);
                            break;

                        case 2:
                            roomCathegories = RoomCathegories.Economy;
                            salary          = hostel.RoomRate(dStayInHotel1, dStayInHotel2) - 800;
                            break;

                        case 3:
                            roomCathegories = RoomCathegories.JuniorSuite;
                            salary          = hostel.RoomRate(dStayInHotel1, dStayInHotel2) + 1200;
                            break;

                        case 4:
                            roomCathegories = RoomCathegories.Luxe;
                            salary          = hostel.RoomRate(dStayInHotel1, dStayInHotel2) + 2500;
                            break;

                        default:
                            WriteLine("Неверный пункт. Попробуйте снова.");
                            ReadLine();
                            goto restart5;
                        }
                        CountClients++;
                        Clients client = new Clients(name, surname, lastName, age, dB, sex, address, salary, roomCathegories);
                        WriteLine("Клиент успешно добавлен!");
restart4:
                        Clear();
                        WriteLine("Забронируйте номер.");
                        hostel.OutputInHotel();
                        Write("Какой номер выберите: ");
                        int numberRoom = ToInt32(ReadLine());
                        Write("Этаж: ");
                        int floor = ToInt32(ReadLine());
                        if (floor <= 4 || numberRoom <= 25)
                        {
                            if (roomCathegories == RoomCathegories.Standart && floor != 1)
                            {
                                WriteLine("1 этаж - Standart. Попробуйте снова.");
                                ReadLine();
                                Clear();
                                goto restart4;
                            }
                            if (roomCathegories == RoomCathegories.Economy && floor != 2)
                            {
                                WriteLine("2 этаж - Economy. Попробуйте снова.");
                                ReadLine();
                                Clear();
                                goto restart4;
                            }
                            if (roomCathegories == RoomCathegories.JuniorSuite && floor != 3)
                            {
                                WriteLine("3 этаж - JuniorSuite(Полулюкс). Попробуйте снова.");
                                ReadLine();
                                Clear();
                                goto restart4;
                            }
                            if (roomCathegories == RoomCathegories.Luxe && floor != 4)
                            {
                                WriteLine("4 этаж - Luxe. Попробуйте снова.");
                                ReadLine();
                                Clear();
                                goto restart4;
                            }
                            if (client.ReservationRoom(floor, numberRoom) == false)
                            {
                                goto restart4;
                            }
                            else
                            {
                                WriteLine("Номер забронирован!");
                            }
                        }
                        else
                        {
                            WriteLine("Такого номера и этажа нет.");
                            goto restart4;
                        }
                        using (StreamWriter sw = new StreamWriter("clients.txt", true))
                        {
                            string[] tmp = { "   Номер клиента: " + CountClients + Environment.NewLine + '{' + Environment.NewLine + "   Имя: " + name + Environment.NewLine + "   Фамилия: " + surname + Environment.NewLine +
                                             "   Отчество: " + lastName + Environment.NewLine + "   Возраст: " + age.ToString() + Environment.NewLine + "   Дата рождения: " + dB.ToShortDateString() + Environment.NewLine + "   Адрес проживания: " + address + Environment.NewLine +
                                             "   Пол: " + sex.ToString() + Environment.NewLine +
                                             "   Дата заезда: " + dStayInHotel1.ToShortDateString() + Environment.NewLine + "   Дата выезда: " + dStayInHotel2.ToShortDateString() + Environment.NewLine + "   Этаж: " + floor + Environment.NewLine +
                                             "   Номер: " + numberRoom + Environment.NewLine +
                                             "   Стоимость номера: " + salary + Environment.NewLine + "   Тип номера: " + roomCathegories.ToString() + Environment.NewLine + '}' };
                            foreach (string t in tmp)
                            {
                                sw.WriteLine(t);
                            }
                            sw.Close();
                        }
                        ReadLine();
                        Clear();
                        WriteLine("Какие действия будут дальше?");
                        WriteLine("1. Продолжить заполнение клиентов;");
                        WriteLine("2. Вернуться в меню.");
                        char n = ToChar(ReadLine());
                        switch (n)
                        {
                        case '1':
                            Clear();
                            RegistrationClients();
                            break;

                        case '2':
                            Clear();
                            Menu();
                            break;

                        default:
                            WriteLine("Неверный пункт меню. Попробуйте снова.");
                            ReadLine();
                            Clear();
                            Menu();
                            break;
                        }
                    }
                    else
                    {
                        WriteLine("Отель заполнен!");
                        ReadLine();
                        Clear();
                        Menu();
                    }
                }
                else
                {
                    WriteLine("Поля не могут быть пустыми. Попробуйте снова.");
                    ReadLine();
                    RegistrationClients();
                }
            }
            catch (Exception e)
            {
                WriteLine(e.Message);
                ReadLine();
                Clear();
                Menu();
            }
        }
Ejemplo n.º 2
0
 public Clients(string Name, string Surname, string LastName, int Age, DateTime dB, char Sex, string Address, double salary, RoomCathegories roomCathegories)
 {
     this.Name            = Name;
     this.Surname         = Surname;
     this.LastName        = LastName;
     this.Age             = Age;
     this.DateBithday     = dB;
     this.Sex             = Sex;
     this.Address         = Address;
     this.SalaryRoom      = salary;
     this.RoomCathegories = roomCathegories;
 }