} // GetHotels /// <summary> /// Определение номера по типу /// </summary> private RoomType GetRoomType(int type) { var serviceGenerator = new ServicesGenerator(); RoomType room; switch (type) { case HotelSeedMetada.ROOMTYPE_SINGLE: room = new RoomType { Name = "Одноместный номер", Capacity = 1, Description = "Наши одноместные номера имеют площадь в 26м² с кроватью размером в 1,60 м.", Price = 180, NumPhotos = 3, SingleBeds = 1 }; room.Services = serviceGenerator.GetRoomServices() .Select(rs => new ServicePerRoom { RoomType = room, Service = rs }).ToList(); return(room); case HotelSeedMetada.ROOMTYPE_DOUBLE: room = new RoomType { Name = "Двуместный номер", Capacity = 2, Description = "Двухместные номера имеют площадь в 32м² и две односпальные кровати 1,40 м", Price = 300, NumPhotos = 4, TwinBeds = 2 }; room.Services = serviceGenerator.GetRoomServices() .Select(rs => new ServicePerRoom { RoomType = room, Service = rs }).ToList(); return(room); case HotelSeedMetada.ROOMTYPE_DOUBLE2: room = new RoomType { Name = "Двуместный номер", Capacity = 2, Description = "Двухместные номера имеют площадь в 40м² и две односпальные кровати 3,20 м", Price = 400, NumPhotos = 2, TwinBeds = 2, }; room.Services = serviceGenerator.GetRoomServices() .Select(rs => new ServicePerRoom { RoomType = room, Service = rs }).ToList(); return(room); case HotelSeedMetada.ROOMTYPE_LUXURY: room = new RoomType { Name = "Роскошный номер", Capacity = 2, Description = "Роскошный номер площадью 42 м² с двуспальной кроватью размера 3,20 м.", Price = 500, NumPhotos = 3, DoubleBeds = 1, }; room.Services = serviceGenerator.GetRoomServices() .Select(rs => new ServicePerRoom { RoomType = room, Service = rs }).ToList(); return(room); default: return(null); } // switch } // GetRoomType
/// <summary> /// Получить отели /// </summary> /// <param name="cities">Города</param> /// <param name="hotelsPerCity">Отелей на город</param> public List <Hotel> GetHotels(IEnumerable <City> cities, int hotelsPerCity = 3) { var pointGenerator = new GeoPointGenerator(); var hotelNameGenerator = new HotelMetadataGenerator(); var addressGenerator = new AddressGenerator(); var cityGenerator = new CitiesGenerator(); var servicesGenerator = new ServicesGenerator(); var hotels = new List <Hotel>(); foreach (var city in cities) { // Получаем типы отелей для города var hotelTypes = cityGenerator.GetHotelTypesPerCity(city.Id); foreach (var hotelType in hotelTypes) { var hotelmetadata = hotelNameGenerator.Data.Single(hmd => hmd.HotelType == hotelType); var random = new Random(); var rating = hotelmetadata.Rating; var location = pointGenerator.GetClosePoint((city.Latitude, city.Longitude), 1000); var(latitude, longitude) = location; // Формируем отель var hotel = new Hotel { Name = $"{hotelmetadata.Prefix} {city.Name}", Description = $"Роскошный отель {rating}-звёзд расположенный в {city.Name} который был открыт в {hotelmetadata.Year}. В отеле есть качественные номера и современная, хорошо оборудованная конференц-зона, где могут разместиться мероприятия любого типа на 100 человек. Это идеальная остановка в пути. Расположение идеально подходит для отдыха или бизнеса. Если вы просто хотите расслабиться, здесь можно прогуляться, велосипедные прогулки или автомобильные экскурсии в местные причудливые и исторические деревни и города в живописных окрестностях. Также вы можете расслабиться в нашей финской сауне, био-сауне, инфракрасной сауне, джакузи. Или заняться спортом в тренажерном зале. После расслабляющего ужина и горячительного напитка в нашем баре со сном не должно быть проблем в одном из наших уютных и комфортабельных номеров. Наш молодой и дружелюбный персонал здесь, чтобы приветствовать вас и служить вам. Надеемся увидеть вас в ближайшее время!", City = city, Address = new Address { PostCode = addressGenerator.GetPostCode(), Street = addressGenerator.GetStreet() }, CheckinTime = new TimeSpan(15, 0, 0), CheckoutTime = new TimeSpan(12, 0, 0), Location = new Location { Latitude = latitude, Longitude = longitude }, Rating = rating, Visits = random.Next(10000, 30000), NumPhotos = 1, RoomTypes = new[] { GetRoomType(hotelmetadata.RoomTypes.single), GetRoomType(hotelmetadata.RoomTypes.@double) }, ConferenceRooms = new[] { new ConferenceRoom { Name = $"{HotelMetadataGenerator.GetConferenceRoomName(hotelType)}", Rating = rating, Capacity = 40, PricePerHour = 190, NumPhotos = 3 } } }; // Формируем сервисы отеля hotel.Services = servicesGenerator.GetHotelServicesByHotelType(hotelType) .Select(hs => new ServicePerHotel { Service = hs, Hotel = hotel }).ToList(); hotels.Add(hotel); } // foreach } // foreach return(hotels); } // GetHotels