private static PhotosSearchResult ParseUsingWindows(String stringResponse) { var objectResponse = JsonObject.Parse(stringResponse); if (!objectResponse.ContainsKey("response")) { throw new VkRequestException(objectResponse); } var response = objectResponse["response"].GetObject(); var result = new List <IPhotoMetadata>(); if (!response.ContainsKey("items") || (response["items"].ValueType != JsonValueType.Array) || !response.ContainsKey("count")) { return(new PhotosSearchResult(0, result)); } var itemsStartDate = (DateTime?)null; var itemsEndDate = (DateTime?)null; foreach (var item in response["items"].GetArray()) { var photoMetadata = VkPhotoMetadata.Create(item.GetObject()); if (!itemsEndDate.HasValue) { itemsEndDate = photoMetadata.Date; } if (photoMetadata.Date.HasValue) { itemsStartDate = photoMetadata.Date; } result.Add(photoMetadata); } return(new PhotosSearchResult((UInt32)response["count"].GetNumber(), itemsStartDate, itemsEndDate, result)); }
public static IPhotoMetadata Create(JsonObject value) { var photos = new List <IPhoto>(); if (value.ContainsKey("sizes") && (value["sizes"].ValueType == JsonValueType.Array)) { foreach (var item in value["sizes"].GetArray()) { var photo = VkPhoto.Create(item.GetObject()); if (photo != null) { photos.Add(photo); } } } var instance = new VkPhotoMetadata(); if (value.ContainsKey("id")) { instance.Id = (UInt32)value["id"].GetNumber(); } if (value.ContainsKey("owner_id")) { var owner = value["owner_id"].GetNumber(); instance.Owner = (owner < 0) ? OwnerId.Create((UInt32)Math.Abs(owner), OwnerId.OwnerType.Group) : OwnerId.Create((UInt32)owner, OwnerId.OwnerType.User); } if (value.ContainsKey("lat")) { instance.Latitude = value["lat"].GetNumber(); } if (value.ContainsKey("long")) { instance.Longitude = value["long"].GetNumber(); } if (value.ContainsKey("date")) { instance.Date = DateTimeExtensions.FromUnixTimestamp((Int32)value["date"].GetNumber()); } if (value.ContainsKey("text")) { instance.Text = value["text"].GetString(); } instance.Photos = photos; return(instance); }