コード例 #1
0
        public void VerifyUrlLength (ForumsHomePagePart part){

             var forumSettings = _orchardServices.WorkContext.CurrentSite.As<ForumsSettingsPart>();
            var url = part.As<AutoroutePart>().DisplayAlias;
            if (forumSettings.ForumsHomeUrlMaximumLength > 0)
            {
                part.As<AutoroutePart>().DisplayAlias = url.Substring(0, Math.Min(forumSettings.ForumsHomeUrlMaximumLength, url.Length));
            }
        }
コード例 #2
0
        public IEnumerable<ForumCategoryPart> GetCategoriesWithForums( ForumsHomePagePart forumsHomePagePart, VersionOptions versionOptions)
        {
            //leave this untouched to maintain order            
           var categories = GetCategoriesInForumsHomePage(forumsHomePagePart.Id, versionOptions).OrderBy(o => o.Weight);
           var forums =  _forumService.GetForumsForCategories( categories.Select( c=>c.Id).ToList(), versionOptions );
           var forumToCategoryMapping = forums.ToLookup( forum=> forum.As<CommonPart>().Container.Id, forumPart =>forumPart.Id);
           foreach ( var category in categories ) {
                //var relatedForums = mappings.Where( m=> m.ForumCategoryPartRecord.Id == category.Id ).Select( m=>m.ForumPartRecord.Id).ToList();
                category.Forums.AddRange( forums.Where( f=> forumToCategoryMapping[category.Id].Contains( f.Id ) ).ToList() );
            }
            /*
            var forums = _forumService.Get(versionOptions).ToList();

            var mappings = _categoryToForumMappingRepository.Table.ToLookup( map=> map.ForumCategoryPartRecord.Id, m=>m.ForumPartRecord.Id);
         
            //this is not at all efficient but the number of entries should be relatively small
            foreach ( var category in categories ) {
                //var relatedForums = mappings.Where( m=> m.ForumCategoryPartRecord.Id == category.Id ).Select( m=>m.ForumPartRecord.Id).ToList();
                category.Forums.AddRange( forums.Where( f=> mappings[category.Id].Contains( f.Id ) ).ToList() );
            }
            */
             return categories;
        }
コード例 #3
0
 //would be better for typing to use the parameter ForumsHomePagePart instead of the id, but there are some cases where the part is not available
 public static string CategoryCreateForAdmin(this UrlHelper urlHelper, ForumsHomePagePart forumsHomePagePart)
 {
     return urlHelper.Action("CreateForumCategory", "ForumAdmin", new { forumsHomePagePartId = forumsHomePagePart.Id, area = Constants.LocalArea });
 }