Esempio n. 1
0
        public static IEnumerable <FacebookAlbum> MapToAlbums(JsonArray albumData)
        {
            var albums = new List <FacebookAlbum>();

            foreach (var album in albumData)
            {
                var albumDict = (IDictionary <string, object>)album;

                var facebookAlbum = new FacebookAlbum();
                facebookAlbum.Id          = albumDict.ToString("id");
                facebookAlbum.Name        = albumDict.ToString("name");
                facebookAlbum.Description = albumDict.ToString("description");
                facebookAlbum.Link        = albumDict.ToString("link");
                facebookAlbum.Privacy     = albumDict.ToString("privacy");
                facebookAlbum.Type        = albumDict.ToString("type");
                facebookAlbum.Created     = albumDict.ToDateTime("created_time");
                facebookAlbum.Updated     = albumDict.ToDateTime("updated_time");
                facebookAlbum.CanUpload   = albumDict.ToBool("can_upload");

                var from = (IDictionary <string, object>)albumDict["from"];
                facebookAlbum.From      = new FacebookUser();
                facebookAlbum.From.Id   = from.ToString("id");
                facebookAlbum.From.Name = from.ToString("name");

                albums.Add(facebookAlbum);
            }

            return(albums);
        }
Esempio n. 2
0
        public static FacebookAlbum Album(long id, JToken json)
        {
            FacebookAlbum fa;

            if ((fa = Data.FacebookAlbums.FirstOrDefault(x => x.Id == id)) == null)
            {
                fa = new FacebookAlbum
                {
                    Id          = id,
                    TimeCreated = json.TryGetValue <DateTime>("created_time"),
                };
                if (fa.TimeCreated == default(DateTime))
                {
                    return(null);
                }
                Data.FacebookAlbums.InsertOnSubmit(fa);
            }
            if (!json.Any())
            {
                return(fa);
            }

            fa.Description = json.TryGetValue <string>("description");
            fa.Name        = json.TryGetValue <string>("name");
            fa.TimeUpdated = json.TryGetValue <DateTime?>("updated_time");
            fa.Type        = json.TryGetValue <string>("type");

            try
            {
                Data.SubmitChanges();
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("There was an error saving the album: {0} {1}", id, fa.Name), ex);
                return(null);
            }

            var fromId = json["from"].TryGetValue <long?>("id");

            if (fromId != null)
            {
                var contact = Contact(fromId.Value, json["from"]);
                if (contact != null)
                {
                    fa.Contact = contact.Id;
                }
                try
                {
                    Data.SubmitChanges();
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("There was an error saving the album: {0} {1}", id, fa.Name), ex);
                }
            }

            var coverId = json.TryGetValue <long?>("cover_photo");

            if (coverId != null)
            {
                var cover = Photo(coverId.Value, json["cover_photo"]);
                if (cover != null)
                {
                    fa.Cover = cover.Id;
                }
                try
                {
                    Data.SubmitChanges();
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("There was an error saving the album: {0} {1}", id, fa.Name), ex);
                }
            }

            var comments = json.TryGetValue <JObject>("comments");

            if (comments != null)
            {
                Message(id, json);
            }

            return(fa);
        }
Esempio n. 3
0
 public AlbumCellViewModel(FacebookAlbum model, IViewStackService viewStackService = null)
     : base(viewStackService)
 {
     _model = model;
 }