/*
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 System.Web.Mvc;
namespace Everest.CmsServices.Extension.Module{
public class ModuleSessionStateTempDataProvider : ITempDataProvider
{
// Fields
internal const string TempDataSessionStateKey = "__ModuleControllerTempData";
// Methods
public virtual IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
{
HttpContextBase httpContext = controllerContext.HttpContext;
if (httpContext.Session == null)
{
throw new InvalidOperationException("SessionStateTempDataProvider_SessionStateDisabled");
}
Dictionary<string, object> dictionary = httpContext.Session[TempDataSessionStateKey] as Dictionary<string, object>;
if (dictionary != null)
{
httpContext.Session.Remove(TempDataSessionStateKey);
return dictionary;
}
return new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
}
public virtual void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
{
HttpContextBase httpContext = controllerContext.HttpContext;
if (httpContext.Session == null)
{
throw new InvalidOperationException("SessionStateTempDataProvider_SessionStateDisabled");
}
httpContext.Session[TempDataSessionStateKey] = values;
}
}
}
|