EXAMPLE: Retrieve item relations

Use the following methods to retrieve related data:

C#
using System.Linq;
using Telerik.Sitefinity.DynamicModules.Model;
using Telerik.Sitefinity.Modules.News;
using Telerik.Sitefinity.News.Model;
using Telerik.Sitefinity.RelatedData;

namespace SitefinityWebApp
{
   public class RetrieveRelatedData
   {
       /// <summary>
       /// Get all items of type DynamicContent, called "Speakers", that related to this news item through its RelatedData field "speakers"
       /// </summary>
       /// <param name="newsItem">The news item</param>
       /// <returns>Returns a collection of related speakers</returns>
       public IQueryable<DynamicContent> GetRelatedSpeakers(NewsItem newsItem)
       {
           var relatedSpeakers = newsItem.GetRelatedItems<DynamicContent>("speakers");

           return relatedSpeakers;
       }

       /// <summary>
       /// Get the count of all related data items
       /// </summary>
       /// <param name="newsItem">The news item</param>
       /// <returns>The related speakers count</returns>
       public int GetRelatedSpeakersCount(NewsItem newsItem)
       {
           var relatedSpeakersCount = newsItem.GetRelatedItemsCountByField("speakers");

           return relatedSpeakersCount;
       }

       /// <summary>
       /// Get all related parent items to the dynamic content item
       /// </summary>
       /// <param name="speaker">The speaker</param>
       /// <returns>The related parent items</returns>
       public IQueryable<NewsItem> GetRelatedParentItems(DynamicContent speaker)
       {
           var relatedParents = speaker.GetRelatedParentItems<NewsItem>();

           return relatedParents;
       }

       /// <summary>
       /// Delete the relation between the items
       /// </summary>
       /// <param name="newsItem">The news item</param>
       /// <param name="relatedSpeaker">The related speaker</param>
       public void DeleteRelation(NewsItem newsItem, DynamicContent relatedSpeaker)
       {
           var providerName = string.Empty;
           var newsManager = NewsManager.GetManager(providerName);

           newsItem.DeleteRelation(relatedSpeaker, "speakers");
           newsManager.SaveChanges();
       }
   }
}
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?