/*
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;
using Everest.Library;
using Everest.CmsServices.Models;
using Everest.CmsServices.Providers;
namespace Everest.CmsServices.MvcHelper{
public static class HttpContextExtensions
{
const string CmsContextKey = "__CmsContextKey__";
/// <summary>
/// Gets the CMS context.
/// </summary>
/// <param name="httpContext">The HTTP context.</param>
/// <returns></returns>
public static CmsContext GetCmsContext(this HttpContextBase httpContext)
{
if (httpContext.Items[CmsContextKey] == null)
{
var cmsContext = new CmsContext();
cmsContext.User = httpContext.User;
if (httpContext.Request is Everest.CmsServices.Web.KoobooHttpRequestWrapper)
{
cmsContext.Cms_Application = ((Everest.CmsServices.Web.KoobooHttpRequestWrapper)httpContext.Request).CmsApplication;
}
cmsContext.ContentProvider = UnityManager.Resolve<IContentProvider>();
httpContext.Items[CmsContextKey] = cmsContext;
}
return (CmsContext)httpContext.Items[CmsContextKey];
}
public static CmsContext GetCmsContext(this HttpContext httpContext)
{
return GetCmsContext(new HttpContextWrapper(httpContext));
}
}
}
|