/*
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 System.Web.Mvc;
using System.Web.Routing;
using System.Security.Principal;
using Everest.CmsServices.Providers;
using Everest.CmsServices.Models;
using Everest.Library;
using Everest.CmsServices.DataRule;
using Everest.CmsServices.Search;
namespace Everest.CmsServices.MvcHelper{
public class CmsContext
{
/// <summary>
/// Initializes a new instance of the <see cref="CmsContext"/> class.
/// </summary>
public CmsContext()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="CmsContext"/> class.
/// </summary>
/// <param name="app">The app.</param>
public CmsContext(string app)
{
Cms_Application = CachedData.GetApplication(app);
}
/// <summary>
/// Gets or sets the URL helper.
/// </summary>
/// <value>The URL helper.</value>
public UrlHelper UrlHelper { get; set; }
/// <summary>
/// Gets or sets the application.
/// </summary>
/// <value>The application.</value>
public aspnet_Applications Cms_Application { get; set; }
/// <summary>
/// Gets or sets the page.
/// </summary>
/// <value>The page.</value>
public Cms_Page Cms_Page { get; set; }
/// <summary>
/// Gets the data context.
/// </summary>
/// <value>The data context.</value>
public IEverestCmsDataContext DataContext
{
get
{
return EverestCmsEntities.GetDataContext(false);
}
}
IContentProvider contentProvider;
/// <summary>
/// Gets or sets the content provider.
/// </summary>
/// <value>The content provider.</value>
public IContentProvider ContentProvider
{
get
{
if (contentProvider == null)
{
contentProvider = UnityManager.Resolve<IContentProvider>();
}
return contentProvider;
}
set
{
contentProvider = value;
}
}
/// <summary>
/// Gets or sets the user.
/// </summary>
/// <value>The user.</value>
public IPrincipal User { get; set; }
private ContentService contentService;
/// <summary>
/// Gets the content service.
/// </summary>
/// <value>The content service.</value>
public ContentService ContentService
{
get
{
if (contentService == null)
{
contentService = new ContentService(this.DataContext, this.ContentProvider, this.Cms_Application);
}
return contentService;
}
}
SearchService searchService;
/// <summary>
/// Gets the search service.
/// </summary>
/// <value>The search service.</value>
public SearchService SearchService
{
get
{
if (searchService == null)
{
searchService = new SearchService(this);
}
return searchService;
}
}
private PageHelper pageHelper;
/// <summary>
/// Gets the page helper.
/// </summary>
/// <value>The page helper.</value>
public PageHelper PageHelper
{
get
{
if (pageHelper == null)
{
pageHelper = new PageHelper(this);
}
return pageHelper;
}
}
FolderService folderService;
/// <summary>
/// Gets the folder service.
/// </summary>
/// <value>The folder service.</value>
public FolderService FolderService
{
get
{
if (folderService == null)
{
folderService = new FolderService(this);
}
return folderService;
}
}
/// <summary>
/// Gets or sets the data rule context.
/// </summary>
/// <value>The data rule context.</value>
public DataRuleContext DataRuleContext { get; set; }
/// <summary>
/// Gets or sets the page route data.
/// </summary>
/// <value>The page route data.</value>
public CmsPageRouteData PageRouteData { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is design mode.
/// </summary>
/// <value>
/// <c>true</c> if this instance is design mode; otherwise, <c>false</c>.
/// </value>
public bool IsDesignMode { get; set; }
private EditFieldContextClass _editFieldContext;
public EditFieldContextClass EditFieldContext
{
get
{
if (_editFieldContext == null)
_editFieldContext = new EditFieldContextClass();
return _editFieldContext;
}
}
}
}
|