コード例 #1
0
        public static void MakeOrder(IHotelService service)
        {
            int inputInt;

            Console.WriteLine("Такс заполните форму для поиска нужной комнаты");
            HotelRoomSeachFilterDTO roomFilter = new HotelRoomSeachFilterDTO();

            Console.WriteLine("Какого типа комфорта вы желаете?\n1 - Standart, 2 - Suite, 3 - De_Luxe, 4 - Duplex, 5 - Family_Room, 6 - Honeymoon_Room, 0 - Not important");
            while (true)
            {
                Console.Write("Введите номер: ");
                if (int.TryParse(Console.ReadLine(), out inputInt))
                {
                    if (inputInt >= 0 && inputInt <= 6)
                    {
                        break;
                    }
                }
                Console.WriteLine("Try again");
                continue;
            }
            roomFilter.TypeComfort = (TypeComfortEnumDTO)inputInt;

            Console.WriteLine("Какого типа размера вы желаете?\n1 - SGL, 2 - DBL, 3- DBL_TWN, 4 - TRPL, 5 - DBL_EXB, 6 - TRPL_EXB, 0 - Not important");
            while (true)
            {
                Console.Write("Введите номер: ");
                if (int.TryParse(Console.ReadLine(), out inputInt))
                {
                    if (inputInt >= 0 && inputInt <= 6)
                    {
                        break;
                    }
                }
                Console.WriteLine("Try again");
                continue;
            }
            roomFilter.TypeSize = (TypeSizeEnumDTO)inputInt;

            Console.WriteLine("На которую дату хотите заселится?");
            Console.Write("Год: ");
            int year = int.Parse(Console.ReadLine());

            Console.Write("Месяц: ");
            int month = int.Parse(Console.ReadLine());

            Console.Write("День: ");
            int day = int.Parse(Console.ReadLine());

            roomFilter.CheckInDate = new DateTime(year, month, day);

            var rooms = service.SearchFreeRooms(roomFilter);

            if (!rooms.Any())
            {
                Console.WriteLine("К сожалению свободных подобных комнат нет на данную дату");
            }
            else
            {
                Console.WriteLine("Найденные комнаты:");
                foreach (var t in rooms)
                {
                    Console.WriteLine("Номер: " + t.Number + " Цена за день: " + t.PricePerDay + " Комфорт: " + t.TypeComfort.ToString() + " Размер: " + t.TypeSize.ToString() + " Дата заезда: " + t.CheckInDate + " Макс дата отъезда: " + t.MaxCheckOutDate);
                }

                FreeHotelRoomDTO room;
                string           inputString;
                while (true)
                {
                    Console.Write("Какой номер предпочитаете: ");
                    inputString = Console.ReadLine();
                    room        = rooms.SingleOrDefault(p => p.Number == inputString);
                    if (!(room is null))
                    {
                        break;
                    }
                    Console.WriteLine("У Вас проблемы с цифрами)))  Try Again");
                    continue;
                }

                ActiveOrderDTO order = new ActiveOrderDTO();
                order.HotelRoomId  = room.HotelRoomId;
                order.ChecknInDate = room.CheckInDate;
                Console.Write("На которое количество дней: ");
                int days = int.Parse(Console.ReadLine());
                order.CheckOutDate = room.CheckInDate.AddDays(days);
                //order.DateRegistration = DateTime.Now;

                ClientDTO client = new ClientDTO();
                Console.Write("Ваше имя: ");
                inputString      = Console.ReadLine();
                client.FirstName = inputString;
                Console.Write("Ваша фамилия: ");
                inputString     = Console.ReadLine();
                client.LastName = inputString;
                Console.Write("Ваш номер телефона: ");
                inputString        = Console.ReadLine();
                client.PhoneNumber = inputString;
                //order.Client = client;

                Console.Write("Бронь или оплата: 1 - Paid, 2 - Booked\n");
                while (true)
                {
                    Console.Write("Введите номер: ");
                    if (int.TryParse(Console.ReadLine(), out inputInt))
                    {
                        if (inputInt >= 1 && inputInt <= 2)
                        {
                            break;
                        }
                    }
                    Console.WriteLine("Try again");
                    continue;
                }
                order.PaymentState = (PaymentStateEnumDTO)inputInt;

                service.AddClientActiveOrder(order, client);
            }
            service.Dispose();
        }