Sayfalar

27 Ocak 2010 Çarşamba

Blog gönderisini etiketleme

  Bir blog gönderisini blogger api kullanarak etiketlemek için "AtomCategory" sınıfı kullanılır. Bu sınıfın Term isimli protertisi ile etiketleme yaparız.
  örneğin ,     AtomCategory cat = new AtomCategory;
                    cat.Scheme= "http://www.blogger.com/atom/ns#";
                    cat.Term = "label";

  Eğer bloglarınızı   bir masaüstü uygulamasıyla yönetiyor ve birden fazla etiket kullanıyorsak öncelikler tüm etiketleri bir checkedlistBoxta toplarız ve istediklerimizi seçeriz. Tabiki seçtiklerimizi virgülle ayırmamız gerekecek. "CommaDelimitedStringCollection" sınıfı bunu bizim yerimize yapar.

bu sınıf hakkında daha detaylı bilgi  msdn kütüphanesinde mevcuttur. Şu blogda da nasıl kullanılacağıyla ilgili bir örnek var.



Uri uri = new Uri(bloggerUri);

BloggerEntry newpost = new BloggerEntry();
AtomCategory cat = new AtomCategory();
cat.Scheme = "http://www.blogger.com/atom/ns#";

CommaDelimitedStringCollection commaCollection =
 new CommaDelimitedStringCollection();
foreach (object checkedItems in checkedListBox1.CheckedItems)
{
         commaCollection.Add(checkedItems.ToString());
                
}
cat.Term = commaCollection.ToString();

bservice.Insert(uri, newpost);

Blog etiketlerini çekme

  Blogumuzdaki etiketleri çekmek için AtomFeed sınıfınin Entries propertisi ile tüm entryler AtomEntryCollection sınıfında toplanır ve buradan for döngüsü ile kategorilere erişilir.


Uri uri = new Uri(bloggerUri);
       FeedQuery query = new FeedQuery();
       query.Uri = uri;

       AtomFeed feed = bservice.Query(query);

       foreach (AtomEntry entry in feed.Entries)
       {
                
            for (int i = 0; i < entry.Categories.Count; i++)
            {
               Console.WriteLine(entry.Categories[i].Term);
            }
       }


verileri checkedListBoxta toplayabiliriz.
foreach (AtomEntry entry in feed.Entries)
    {
                
           for (int i = 0; i < entry.Categories.Count; i++)
           {
                 checkedListBox1.Items.Add(entry.Categories[i].Term);
                
           }
    }