using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Sleis.ViewModels; using Sleis.Models; namespace Sleis.Filter { public class ToggleAttribute:ActionFilterAttribute, IActionFilter { public override void OnActionExecuting(ActionExecutingContext filterContext) { //var actionParameters = filterContext.ActionParameters; base.OnActionExecuting(filterContext); } public override void OnActionExecuted(ActionExecutedContext filterContext) { try { //make sure index is present. if it is not, the toggler flush itself. string toggleIndex = filterContext.HttpContext.Request.QueryString["toggleIndex"]; if (!String.IsNullOrEmpty(toggleIndex)) { ItemViewBase viewModel = (ItemViewBase)filterContext.Controller.ViewData.Model; //make sure model is of ItemViewBase so that we have access to ToggleInfo property if (viewModel != null) { viewModel.ToggleInfo = filterContext.Controller.TempData[Constants.ToggleInfo] as ToggleInfo; //make sure toggle info was found. this allows if (viewModel.ToggleInfo != null) { viewModel.ToggleInfo.UpdateToggleInfo(Convert.ToInt32(toggleIndex)); //save updated toggle info. filterContext.Controller.TempData[Constants.ToggleInfo] = viewModel.ToggleInfo; } } } } catch { } //swallowed } /* private void SetToggleInfo() { try { ItemViewBase viewModel = (ItemViewBase)ViewData.Model; //make sure model is of ItemViewBase so that we have access to ToggleInfo property if (viewModel != null) { viewModel.ToggleInfo = GetTempData(Constants.ToggleInfo); //make sure toggle info was found. this allows if (viewModel.ToggleInfo != null) { viewModel.ToggleInfo.UpdateToggleInfo(Convert.ToInt32(Request.QueryString["toggleIndex"])); //save updated toggle info. SetTempData(Constants.ToggleInfo, viewModel.ToggleInfo); } } } catch { } } * */ } }