Я сейчас работаю в проекте uwp, который получает значения из JSON Web API
.Внутри API
у меня есть несколько комнат и атрибутов к ним, и у меня нет проблем с их достижением.
Проблема, с которой я столкнулся, заключается в том, как мне получить значения для всех бронирований в комнатах, чтобы их бронировали.в расширении URL, например:
URL-адрес без бронирования:
string url = "https://api.booking.com/api/room";
URL-адрес с бронированиями:
string url = "https://api.booking.com/api/room/35bf3c4d-9b5b-40fd-bcf4-a4c2c6c564bc/bookings";
Guid
- это идентификатор комнаты.
Та же проблема, что у меня была с изображениями каждой комнаты, но я решил эту проблему, выполнив следующее:
Это то, что я сначала протестировал, но затем я получил только одно изображение:
string url = "https://api.booking.com/api/room/35bf3c4d-9b5b-40fd-bcf4-a4c2c6c564bc/image";
Но я проверил это, и он получил все изображения:
public Uri ImageUrl =>
new Uri( $"https://api.booking.com/api/room/{Id}/image", UriKind.Absolute );
Итак, я получил идентификатор каждой комнаты и получил изображение для всех комнат, но этот метод нене работает с бронированиями, потому что в расширении бронирования есть несколько типов данных, и он не работает, если я сделаю объект uri
.
Надеюсь, что вы понимаете мою проблему ...
Заранее спасибо!
РЕДАКТИРОВАТЬ:
JSON образец из двухиз номеров:
[
{
"name": "Rum 1",
"id": "a31d1fc8-df29-419c-8308-f8bc884b378e",
"seats": 10,
"availableFrom": null,
"availableTo": null
},
{
"name": "Rum 2",
"id": "7defd34d-222d-4980-b28f-e616e8b9003c",
"seats": 5,
"availableFrom": null,
"availableTo": null
}
]
Json образец одной из бронирований:
[
{
"id": "12324a01-92b7-49f3-8d10-1def59eddd32",
"code": 6679,
"timeFrom": "2018-02-13T16:00:00",
"timeTo": "2018-02-13T16:45:00",
"note": null,
"createdDate": "2018-02-13T10:04:14.8",
"room": {
"name": "Rum 2",
"id": "7defd34d-222d-4980-b28f-e616e8b9003c",
"seats": 10,
"availableFrom": null,
"availableTo": null
}
}
]
Это мой класс для бронирований:
public class Bookings
{
public string id { get; set; }
public int code { get; set; }
public DateTime timeFrom { get; set; }
public DateTime timeTo { get; set; }
public List<Class2> room { get; set; }
}
И этокласс для комнат:
public class Class2
{
public string name { get; set; }
public string id { get; set; }
public int seats { get; set; }
public Uri ImageUrl => new Uri($"https://api.bookings.com/api/rooms/{id}/image", UriKind.Absolute);
}
Вот как я получаю заказы:
string booking = "https://api.booking.com/api/room/{id}/bookings";
HttpClient BookingClient = new HttpClient();
string BookingResponse = await BookingClient.GetStringAsync(booking);
var BookingData = JsonConvert.DeserializeObject<List<Bookings>>(response);
Здесь я объявляю переменную комнату и книги:
foreach (var room in data)
{
string id = room.id;
string name = room.name;
int seats = room.seats;
Uri Img = room.ImageUrl;
foreach (var books in BookingData)
{
string note = books.note;
DateTime TimeFrom = books.timeFrom;
DateTime TimeTo = books.timeTo;
Class2 BookRoom = books.room;
string BookId = books.id;
int code = books.code;
//if (room.Bookings.Any(a => a.timeFrom == DateTime.UtcNow))
//{
// templategrid.GreenToRed();
//}
//else if (room.Bookings.Any(a => a.timeFrom != DateTime.UtcNow))
//{
// do stuff
//}
}
}