Skip to content

Instantly share code, notes, and snippets.

@sitefinitySDK
Last active November 30, 2022 14:42
Show Gist options
  • Select an option

  • Save sitefinitySDK/be18d39afa60fe3aeb9b to your computer and use it in GitHub Desktop.

Select an option

Save sitefinitySDK/be18d39afa60fe3aeb9b to your computer and use it in GitHub Desktop.

Revisions

  1. Sitefinity SDK revised this gist Oct 1, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion FilterDynamicContentItems.cs
    Original file line number Diff line number Diff line change
    @@ -50,7 +50,7 @@ private void FilterDynamicContent()
    // Filter movie collection by Classification field
    var taxonomyManager = TaxonomyManager.GetManager();
    var tags = taxonomyManager.GetTaxonomies<FlatTaxonomy>().FirstOrDefault(x => x.Title == "Tags");
    var tag = tags.Taxa.FirstOrDefault();
    var tag = tags.Taxa.FirstOrDefault(x => x.Title == "Some movie tag");
    var moviesByTag = allMovies.Where("Tags.Contains((" + tag.Id.ToString() + "))");

    // Filter movie collection by RelatedData field
  2. Sitefinity SDK created this gist Oct 1, 2014.
    65 changes: 65 additions & 0 deletions FilterDynamicContentItems.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    using System;
    using System.Linq;
    using Telerik.Sitefinity.Data.Linq.Dynamic;
    using Telerik.Sitefinity.DynamicModules;
    using Telerik.Sitefinity.DynamicModules.Model;
    using Telerik.Sitefinity.Modules.Libraries;
    using Telerik.Sitefinity.RelatedData;
    using Telerik.Sitefinity.Taxonomies;
    using Telerik.Sitefinity.Taxonomies.Model;
    using Telerik.Sitefinity.Utilities.TypeConverters;

    namespace Telerik.Sitefinity.Documentation.CodeSnippets.SFTools.TemplateBuilder.HierarchicalDM
    {
    public partial class FilterDynamicContentItems
    {
    private void FilterDynamicContent()
    {
    // Get an instance of the dynamic module manager
    var providerName = String.Empty;
    DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName);

    // Resolve dynamic content item types
    Type movieType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.MovieCollection.Movie");
    Type actorType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.MovieCollection.Actor");

    // Get collection of movies
    var allMovies = dynamicModuleManager.GetDataItems(movieType);

    // Get collection of actors
    var allActors = dynamicModuleManager.GetDataItems(actorType);

    // Filter movie collection by ShortText field
    var moviesByTitle = allMovies.Where("Title = \"Some Title\"");
    var moviesByTitleAlternative = allMovies.Where("Title.Contains(\"Some Title\")");
    var moviesByTitleAndStatus = allMovies.Where("Title.Contains(\"Some Title\") && Status = \"Live\"");

    // Filter movie collection by a Number field
    var moviesFrom2003 = allMovies.Where("Year = 2003");
    var moviesBefore2000 = allMovies.Where("Year < 2000");

    // Filter movie collection by a YesNo field
    var moviesIn3D = allMovies.Where("ShotIn3D = true");
    var moviesNotIn3D = allMovies.Where("ShotIn3D = false");

    // Filter movie collection by a Choices field
    var dramaMovies = allMovies.Where("Genre = \"Drama\"");
    var actionMovies = allMovies.Where("Genre = \"Action\"");
    var comedyMovies = allMovies.Where("Genre = \"Comedy\"");

    // Filter movie collection by Classification field
    var taxonomyManager = TaxonomyManager.GetManager();
    var tags = taxonomyManager.GetTaxonomies<FlatTaxonomy>().FirstOrDefault(x => x.Title == "Tags");
    var tag = tags.Taxa.FirstOrDefault();
    var moviesByTag = allMovies.Where("Tags.Contains((" + tag.Id.ToString() + "))");

    // Filter movie collection by RelatedData field
    var actor = allActors.Where("Name.Contains(\"Actor Name\")").FirstOrDefault();
    var moviesByActor = actor.GetRelatedParentItems(movieType.FullName, providerName, "Actors").OfType<DynamicContent>();

    // Filter movie collection by RelatedMedia field
    var image = LibrariesManager.GetManager().GetImages().FirstOrDefault();
    var moviesByPoster = image.GetRelatedParentItems(movieType.FullName, providerName, "Poster").OfType<DynamicContent>();
    }
    }
    }