private void HandleTable(HttpContext context) { string gridName = context.Request["Name"]; //StringBuilder sbDebug = new StringBuilder(); //foreach (string key in context.Request.QueryString.AllKeys) //{ // sbDebug.Append(key); // sbDebug.Append(" = "); // sbDebug.Append(context.Request.QueryString[key]); // sbDebug.Append("<br />"); //} var grid = MVCGridDefinitionTable.GetDefinitionInterface(gridName); var options = GridOptionParser.ParseOptions(grid, gridName, context.Request); var gridContext = GridContextUtility.Create(context, gridName, grid, options); GridEngine engine = new GridEngine(); if (!engine.CheckAuthorization(gridContext)) { //Forbidden context.Response.StatusCode = 403; context.Response.End(); return; } IMVCGridRenderingEngine renderingEngine = GridEngine.GetRenderingEngine(gridContext); renderingEngine.PrepareResponse(context.Response); engine.Run(renderingEngine, gridContext, context.Response.Output); }
public static IMVCGridRenderingEngine GetRenderingEngine(GridContext gridContext) { IMVCGridRenderingEngine renderingEngine = null; if (!String.IsNullOrWhiteSpace(gridContext.QueryOptions.RenderingEngineName)) { foreach (ProviderSettings configuredEngine in gridContext.GridDefinition.RenderingEngines) { if (String.Compare(gridContext.QueryOptions.RenderingEngineName, configuredEngine.Name, true) == 0) { string engineName = gridContext.QueryOptions.RenderingEngineName; string typeString = gridContext.GridDefinition.RenderingEngines[engineName].Type; Type engineType = Type.GetType(typeString, true); renderingEngine = (IMVCGridRenderingEngine)Activator.CreateInstance(engineType, true); } } } if (renderingEngine == null) { renderingEngine = GetRenderingEngineInternal(gridContext.GridDefinition); } return(renderingEngine); }
internal static string GenerateGrid(string gridName, out int statusCode, NameValueCollection nameValueCollection = null) { if (nameValueCollection == null) { nameValueCollection = new NameValueCollection(); } statusCode = 200; IMVCGridDefinition grid = MVCGridDefinitionTable.GetDefinitionInterface(gridName); QueryOptions options = QueryStringParser.ParseOptions(grid, nameValueCollection); GridContext gridContext = MVCGrid.NetCore.Utility.GridContextUtility.Create(/*context, */ gridName, grid, options); GridEngine engine = new GridEngine(); if (!engine.CheckAuthorization(gridContext)) { //Forbidden statusCode = 403; return(string.Empty); } IMVCGridRenderingEngine renderingEngine = GridEngine.GetRenderingEngine(gridContext); // TODO: Reimplement this for csv exports and other rendering responses. //renderingEngine.PrepareResponse(context.Response); StringBuilder sb = new StringBuilder(); TextWriter htmlWriter = new StringWriter(sb); engine.Run(renderingEngine, gridContext, htmlWriter); string html = sb.ToString(); return(html); }
public void Run(IMVCGridRenderingEngine renderingEngine, GridContext gridContext, TextWriter outputStream) { if (!renderingEngine.AllowsPaging) { gridContext.QueryOptions.ItemsPerPage = null; } var model = GenerateModel(gridContext); renderingEngine.Render(model, gridContext, outputStream); }
private static string RenderContainerUsingRenderingEngine(IMVCGridDefinition gridDefinition, ContainerRenderingModel model) { IMVCGridRenderingEngine renderingEngine = GetRenderingEngineInternal(gridDefinition); using (MemoryStream ms = new MemoryStream()) { using (TextWriter tw = new StreamWriter(ms)) { renderingEngine.RenderContainer(model, tw); } return(LocalEncoding.GetString(ms.ToArray())); } }
private static string RenderUsingRenderingEngine(GridEngine engine, Models.GridContext gridContext) { IMVCGridRenderingEngine renderingEngine = GetRenderingEngine(gridContext); using (MemoryStream ms = new MemoryStream()) { using (TextWriter tw = new StreamWriter(ms)) { engine.Run(renderingEngine, gridContext, tw); } string result = LocalEncoding.GetString(ms.ToArray()); return(result); } }
internal static IMVCGridRenderingEngine GetRenderingEngineInternal(IMVCGridDefinition gridDefinition) { string engineName = gridDefinition.DefaultRenderingEngineName; if (gridDefinition.RenderingEngines[engineName] == null) { throw new Exception(String.Format("The requested default rendering engine '{0}' was not found.", engineName)); } string typeString = gridDefinition.RenderingEngines[engineName].Type; Type engineType = Type.GetType(typeString, true); IMVCGridRenderingEngine renderingEngine = (IMVCGridRenderingEngine)Activator.CreateInstance(engineType, true); return(renderingEngine); }