Advertisement
Stephen2

SitefinityQuery - Images

Mar 1st, 2014
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.55 KB | None | 0 0
  1. /* Fetch - ALL */
  2. private IQueryable<Image> GetAllImages() {
  3.     //Aaaahh non-multisite, how simple you were
  4.     if (!SystemManager.CurrentContext.IsMultisiteMode) {
  5.         return LibrariesManager.GetManager().GetImages();
  6.     }
  7.  
  8.     return SitefinityQuery.Get<Image>(LibrariesManager.GetManager().Provider)
  9.         .Where(o => GetLibrariesApplicationNames().Contains(o.ApplicationName));
  10. }
  11.  
  12. /* Fetch - LIVE RECORDS */
  13. IQueryable<Image> GetImages() {
  14.     return GetAllImages().Where(o => o.Visible && o.Status == ContentLifecycleStatus.Live);
  15. }
  16.  
  17. Image GetImage(Guid id) {
  18.     return GetImages().SingleOrDefault(o => o.Id == id);
  19. }
  20.  
  21. /* Provider/Application names */
  22. IEnumerable<string> GetLibrariesApplicationNames() {
  23.     //Get Provider names via SiteDataSourceLinks
  24.     var providerNames = GetProviderNames(typeof(LibrariesManager).FullName);
  25.  
  26.     //NOW we can't just use these, because the "Default" provider for Sitefinity
  27.     //Has a different ProviderName from ApplicationName
  28.     //We could hardcode it, but that's not right, let's look it up in the place Sitefinity sets it.
  29.     return providerNames.Select(o => LibrariesProviderApplicationName(o));
  30. }
  31.  
  32. string LibrariesProviderApplicationName(string providerName) {
  33.     return Config.Get<LibrariesConfig>().Providers[providerName].Parameters["applicationName"];
  34. }
  35.  
  36. IEnumerable<string> GetProviderNames(string dataSourceName) {
  37.     return SystemManager.CurrentContext.CurrentSite.SiteDataSourceLinks
  38.         .Where(o => o.DataSourceName == dataSourceName)
  39.         .Select(o => o.ProviderName);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement