public static void CreateFlickrAlbums(string username)
    {
        PhotoAlbumProvider provider = PhotoAlbumService.Instance;

        Dictionary <String, String> defaultAlbums =
            new Dictionary <string, string>();

        defaultAlbums.Add("Forest Album", "forest");
        defaultAlbums.Add("Summer Album", "summer");
        defaultAlbums.Add("Water Album", "water");

        List <Album> albums = provider.GetAlbums(username);

        foreach (Album album in albums)
        {
            // start from scratch
            if (defaultAlbums.ContainsKey(album.Name))
            {
                // delete photos first
                foreach (Photo photo in album.Photos)
                {
                    provider.PhotoDeletePermanent(photo);
                }
                provider.AlbumDeletePermanent(album);
            }
        }

        foreach (string albumName in defaultAlbums.Keys)
        {
            CreateFlickrAlbums(username, albumName, defaultAlbums[albumName]);
        }

        RepopulateSiteMap();
    }
    private static void CreateFlickrAlbums(string username,
                                           string albumName, string flickrTag)
    {
        PhotoAlbumProvider provider = PhotoAlbumService.Instance;
        Album album = provider.AlbumInsert(username, albumName, true, true);

        ImportFlickrPhotosToAlbum(album, flickrTag);
    }
Ejemplo n.º 3
0
 protected void Page_Init(object sender, EventArgs e)
 {
     if (!String.IsNullOrEmpty(Request.QueryString["AlbumID"]))
     {
         // Find the current album
         PhotoAlbumProvider provider = PhotoAlbumService.Instance;
         List <Album>       albums   = provider.GetAlbums(Utility.GetUserName());
         foreach (Album album in albums)
         {
             if (Request.QueryString["AlbumID"].Equals(album.ID.ToString()))
             {
                 CurrentAlbum = album;
                 break;
             }
         }
     }
 }
    private static void DeleteFlickAlbum(string username,
                                         string albumName)
    {
        PhotoAlbumProvider provider = PhotoAlbumService.Instance;
        List <Album>       albums   = provider.GetAlbums(username);

        foreach (Album album in albums)
        {
            // start from scratch
            if (album.Name.Equals(albumName))
            {
                // delete photos first
                foreach (Photo photo in album.Photos)
                {
                    provider.PhotoDeletePermanent(photo);
                }
                provider.AlbumDeletePermanent(album);
            }
        }
    }
    public static void ImportFlickrPhotosToAlbum(Album album, string tag)
    {
        WebClient client = new WebClient();
        string    url    = String.Format(
            SiteConfiguration.FlickFeedUrlFormat, tag, "rss2");

        byte[]       data   = client.DownloadData(url);
        MemoryStream stream = new MemoryStream(data);

        XmlDocument         document = new XmlDocument();
        XmlNamespaceManager nsmgr    = new XmlNamespaceManager(document.NameTable);

        nsmgr.AddNamespace("media", "http://search.yahoo.com/mrss/");
        nsmgr.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");

        document.Load(stream);
        document.Normalize();

        int max   = 10;
        int count = 1;

        XmlNode channelNode = document.SelectSingleNode("/rss/channel");

        if (channelNode != null)
        {
            XmlNodeList itemNodes = channelNode.SelectNodes("item");
            foreach (XmlNode itemNode in itemNodes)
            {
                XmlNode titleNode     = itemNode.SelectSingleNode("title");
                XmlNode dateTakenNode = itemNode.SelectSingleNode(
                    "dc:date.Taken", nsmgr);

                XmlNode regularUrlNode = itemNode.SelectSingleNode(
                    "media:content/@url", nsmgr);
                XmlNode regularWidthNode = itemNode.SelectSingleNode(
                    "media:content/@width", nsmgr);
                XmlNode regularHeightNode = itemNode.SelectSingleNode(
                    "media:content/@height", nsmgr);

                XmlNode thumbnailUrlNode = itemNode.SelectSingleNode(
                    "media:thumbnail/@url", nsmgr);
                XmlNode thumbnailWidthNode = itemNode.SelectSingleNode(
                    "media:thumbnail/@width", nsmgr);
                XmlNode thumbnailHeightNode = itemNode.SelectSingleNode(
                    "media:thumbnail/@height", nsmgr);

                try
                {
                    string   title = "No Title";
                    DateTime dateTaken;
                    string   regularUrl;
                    string   thumbnailUrl;
                    int      regularWidth, regularHeight,
                             thumbnailWidth, thumbnailHeight;

                    if (titleNode != null && titleNode.FirstChild != null)
                    {
                        title = titleNode.FirstChild.Value;
                    }
                    DateTime.TryParse(dateTakenNode.FirstChild.Value,
                                      out dateTaken);
                    regularUrl = regularUrlNode.Value;
                    int.TryParse(regularWidthNode.Value,
                                 out regularWidth);
                    int.TryParse(regularHeightNode.Value,
                                 out regularHeight);

                    thumbnailUrl = thumbnailUrlNode.Value;
                    int.TryParse(thumbnailWidthNode.Value,
                                 out thumbnailWidth);
                    int.TryParse(thumbnailHeightNode.Value,
                                 out thumbnailHeight);

                    PhotoAlbumProvider provider =
                        PhotoAlbumService.Instance;
                    provider.PhotoInsert(album, title,
                                         dateTaken, regularUrl, regularWidth,
                                         regularHeight, thumbnailUrl,
                                         thumbnailWidth, thumbnailHeight,
                                         true, true);
                }
                catch (Exception ex)
                {
                    Utility.LogError("Error reading RSS item", ex);
                }
                count++;
                if (count > max)
                {
                    break;
                }
            }
        }
    }