Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }