public static List <InfoCategoryViewModel> GetCategory(IUrlHelper Url, string culture, SWCmsConstants.CatePosition position, string activePath = "") { var getTopCates = InfoCategoryViewModel.Repository.GetModelListBy (c => c.Specificulture == culture && c.SiocCategoryPosition.Count( p => p.PositionId == (int)position) > 0 ); var cates = getTopCates.Data ?? new List <InfoCategoryViewModel>(); foreach (var cate in cates) { switch (cate.Type) { case SWCmsConstants.CateType.Blank: foreach (var child in cate.Childs) { child.Href = Url.RouteUrl("Page", new { culture, seoName = child.SeoName }); } break; case SWCmsConstants.CateType.StaticUrl: cate.Href = cate.StaticUrl; break; case SWCmsConstants.CateType.Home: //cate.Href = string.Format("/{0}", culture); //break; case SWCmsConstants.CateType.List: case SWCmsConstants.CateType.Article: case SWCmsConstants.CateType.Modules: default: cate.Href = Url.RouteUrl("Page", new { culture, seoName = cate.SeoName }); break; } cate.IsActived = (cate.Href == activePath || (cate.Type == SWCmsConstants.CateType.Home && activePath == string.Format("/{0}/Home", culture))); } return(cates); }
public static List <InfoCategoryViewModel> GetCategoryByAlias(IUrlHelper Url, string culture, SWCmsConstants.CatePosition position, string activePath = "") { var getTopCates = InfoCategoryViewModel.Repository.GetModelListBy (c => c.Specificulture == culture && c.SiocCategoryPosition.Any( p => p.PositionId == (int)position) ); var cates = getTopCates.Data ?? new List <InfoCategoryViewModel>(); activePath = activePath.ToLower(); foreach (var cate in cates) { switch (cate.Type) { case SWCmsConstants.CateType.Blank: foreach (var child in cate.Childs) { child.DetailsUrl = Url.RouteUrl("Page", new { culture, seoName = child.SeoName }); } break; case SWCmsConstants.CateType.StaticUrl: cate.DetailsUrl = cate.StaticUrl; break; case SWCmsConstants.CateType.Home: case SWCmsConstants.CateType.List: case SWCmsConstants.CateType.Article: case SWCmsConstants.CateType.Modules: default: cate.DetailsUrl = Url.RouteUrl("Page", new { culture, seoName = cate.SeoName }); break; } cate.IsActived = (cate.UrlAlias.Alias == activePath || (cate.Type == SWCmsConstants.CateType.Home && activePath == string.Empty)); cate.Childs.ForEach((Action <InfoCategoryViewModel>)(c => { c.IsActived = ( c.UrlAlias.Alias == activePath); cate.IsActived = cate.IsActived || c.IsActived; })); } return(cates); }