/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Everest.Library;
using Everest.CmsServices.Models;
using Everest.CmsServices.Providers;
using Everest.CmsServices.Services;
namespace Everest.CmsServices.MvcHelper{
public class PageHelper
{
private CmsContext cmsContext;
public PageHelper(CmsContext cmsContext)
{
this.cmsContext = cmsContext;
}
#region Obsolete method
/// <summary>
/// Gets the navigations.
/// </summary>
/// <param name="parentUUID">The parent UUID.</param>
/// <returns></returns>
[Obsolete("please use GetSubPages")]
public IEnumerable<Cms_Page> GetNavigations(Guid? parentUUID)
{
return CachedData.GetSubPages(cmsContext.Cms_Application.ApplicationName, parentUUID);
}
/// <summary>
/// Gets the top navigations.
/// </summary>
/// <returns></returns>
[Obsolete("please use GetTopPages")]
public IEnumerable<Cms_Page> GetTopNavigations()
{
return GetNavigations(null);
}
/// <summary>
/// Gets the child pages.
/// </summary>
/// <returns></returns>
[Obsolete("please use GetSubPages")]
public IEnumerable<Cms_Page> GetSubNavigations()
{
return GetNavigations(cmsContext.Cms_Page.UUID);
}
/// <summary>
/// Gets the parent navigation.
/// </summary>
/// <param name="pageUUID">The page UUID.</param>
/// <returns></returns>
[Obsolete("please use GetParentPage")]
public Cms_Page GetParentNavigation(Guid pageUUID)
{
return CachedData.GetParentPage(pageUUID);
}
#endregion
/// <summary>
/// Gets the sub pages.
/// </summary>
/// <param name="parentUUID">The parent UUID.</param>
/// <returns></returns>
public IEnumerable<Cms_Page> GetSubPages(Guid? parentUUID)
{
return CachedData.GetSubPages(cmsContext.Cms_Application.ApplicationName, parentUUID);
}
/// <summary>
/// Gets the top navigations.
/// </summary>
/// <returns></returns>
public IEnumerable<Cms_Page> GetTopPages()
{
return GetSubPages(null);
}
/// <summary>
/// Gets the sub pages of current page.
/// </summary>
/// <returns></returns>
public IEnumerable<Cms_Page> GetSubPages()
{
return GetSubPages(cmsContext.Cms_Page.UUID);
}
/// <summary>
/// Gets the parent page of current page.
/// </summary>
/// <returns></returns>
public Cms_Page GetParentPage()
{
return GetParentPage(cmsContext.Cms_Page.UUID);
}
/// <summary>
/// Gets the parent page.
/// </summary>
/// <param name="pageUUID">The page UUID.</param>
/// <returns></returns>
public Cms_Page GetParentPage(Guid pageUUID)
{
return CachedData.GetParentPage(pageUUID);
}
/// <summary>
/// Gets the silbing pages.
/// </summary>
/// <returns></returns>
public IEnumerable<Cms_Page> GetSiblingPages()
{
return GetSiblingPages(cmsContext.Cms_Page.UUID);
}
/// <summary>
/// Gets the silbing pages.
/// </summary>
/// <param name="pageUUID">The page UUID.</param>
/// <returns></returns>
public IEnumerable<Cms_Page> GetSiblingPages(Guid pageUUID)
{
var parentPage = GetParentPage(pageUUID);
Guid? parentUUID = null;
if (parentPage != null)
{
parentUUID = parentPage.UUID;
}
//modifed by guoqi to include itself to the sibling pages.
//return GetSubPages(parentUUID).Where(p => p.UUID != pageUUID);
return GetSubPages(parentUUID);
}
}
}
|