public static void RegisterInsertDefaults(IDynamicDataSource dataSource, DetailsView detailsView, bool hideDefaults) { RequestContext requestContext = DynamicDataRouteHandler.GetRequestContext(HttpContext.Current); MetaTable table = dataSource.GetTable(); if (hideDefaults) { var fieldGenerator = detailsView.RowsGenerator as AdvancedFieldGenerator; if (fieldGenerator != null) { fieldGenerator.SkipList.AddRange(BuildSkipList(table, requestContext.RouteData.Values)); } else { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, "Expected a field generator of type {0}", typeof(AdvancedFieldGenerator).FullName)); } detailsView.ItemInserting += delegate(object sender, DetailsViewInsertEventArgs e) { SetDefaultInsertValues(table, requestContext.RouteData.Values, e.Values); }; } else { detailsView.DataBound += delegate(object sender, EventArgs e) { //In the seperate page version we pull the values from the querystring via routing SetDefaultInsertControlValues(table, detailsView, requestContext.RouteData.Values); }; } }
internal IDictionary <string, object> GetColumnValuesFromRoute(HttpContextBase context) { RouteValueDictionary values = DynamicDataRouteHandler.GetRequestContext(context).RouteData.Values; Dictionary <string, object> dictionary2 = new Dictionary <string, object>(); foreach (MetaColumn column in this.Columns) { if (Misc.IsColumnInDictionary(column, values)) { MetaForeignKeyColumn column2 = column as MetaForeignKeyColumn; if (column2 != null) { foreach (string str in column2.ForeignKeyNames) { dictionary2[str] = values[str]; } } else { dictionary2[column.Name] = Misc.ChangeType(values[column.Name], column.ColumnType); } } } return(dictionary2); }
public static string GetRouteValue(string key) { object obj2; if (!DynamicDataRouteHandler.GetRequestContext(HttpContext.Current).RouteData.Values.TryGetValue(key, out obj2)) { return(null); } return(obj2 as string); }
public void Model() { MetaModel m = Utils.CommonInitialize(); var route = RouteTable.Routes[0] as DynamicDataRoute; Assert.IsNotNull(route, "#A1"); Assert.IsNotNull(route.Model, "#A1-1"); var handler = route.RouteHandler; Assert.IsNotNull(handler, "#A2"); Assert.IsTrue(handler.GetType() == typeof(MyDynamicDataRouteHandler), "#A2-1"); Assert.IsNull(handler.Model, "#A2-2"); var req = new FakeHttpWorkerRequest(); var ctx = new HttpContext(req); RequestContext rc = DynamicDataRouteHandler.GetRequestContext(ctx); Assert.IsNotNull(rc, "#B1"); Assert.IsNull(handler.Model, "#B1-2"); var wrapper = new MyHttpContextWrapper(); var request = wrapper.Request as MyHttpRequestWrapper; // It appears .NET checks whether the indicated table exists - if not, GetRouteData will return // null (even though the Route class will find a match) request.SetProperty("AppRelativeCurrentExecutionFilePath", "~/NoSuchTable/List.aspx"); request.SetProperty("PathInfo", String.Empty); // This must be non-null because DynamicData doesn't care to check whether the returned // value is null or not... request.SetProperty("QueryString", new NameValueCollection()); // No table FooTable in the context - returns null RouteData rd = route.GetRouteData(wrapper); Assert.IsNull(rd, "#C1"); // Apparently Model is set in the above call even though it returns null Assert.IsNotNull(handler.Model, "#C1-1"); Assert.AreEqual(route.Model, handler.Model, "#C1-2"); request.SetProperty("AppRelativeCurrentExecutionFilePath", "~/BarTable/List.aspx"); rd = route.GetRouteData(wrapper); Assert.IsNotNull(rd, "#D1"); Assert.IsNotNull(handler.Model, "#D1-1"); Assert.AreEqual(route.Model, handler.Model, "#D1-2"); }
private string GetActionPathFromRoutes(RouteValueDictionary routeValues) { RequestContext requestContext = DynamicDataRouteHandler.GetRequestContext(this.Context); string str = null; if (requestContext != null) { routeValues.Add("__Model", this.Model); VirtualPathData virtualPath = RouteTable.Routes.GetVirtualPath(requestContext, routeValues); if (virtualPath != null) { str = virtualPath.VirtualPath; } } return(str ?? string.Empty); }
public void GetRequestContext() { AssertExtensions.Throws <ArgumentNullException> (() => { DynamicDataRouteHandler.GetRequestContext(null); }, "#A1"); var req = new FakeHttpWorkerRequest(); var ctx = new HttpContext(req); RequestContext rc = DynamicDataRouteHandler.GetRequestContext(ctx); Assert.IsNotNull(rc, "#B1"); Assert.IsNotNull(rc.HttpContext, "#B1-1"); Assert.IsNotNull(rc.RouteData, "#B1-2"); Assert.IsNull(rc.RouteData.Route, "#C1"); Assert.IsNull(rc.RouteData.RouteHandler, "#C1-1"); Assert.IsNotNull(rc.RouteData.Values, "#C1-2"); Assert.AreEqual(0, rc.RouteData.Values.Count, "#C1-3"); }
protected void DetailGridView_Init(object sender, EventArgs e) { // string detailTableName = DynamicDataRouteHandler.GetRequestContext(this.Context).RouteData.Values["details"].ToString(); MetaTable table = DynamicDataRouteHandler.GetRequestMetaTable(Context); // var parents = detailTable.Columns.OfType<MetaForeignKeyColumn>().Select(s => s.ParentTable).Distinct(); // var children = detailTable.Columns.OfType<MetaChildrenColumn>().Select(s => s.ChildTable).Distinct(); // var detailschildren = children.Where(x => x.Attributes[typeof(Modiriat_Gharardadha.Helpers.DetailTableName)] != null); //get child from custom attributes Helpers.DetailTableName tblName = table.Attributes[typeof(Helpers.DetailTableName)] as Helpers.DetailTableName; MetaModel model = ((DynamicDataRouteHandler)(DynamicDataRouteHandler.GetRequestContext(this.Context).RouteData.RouteHandler)).Model; Microsoft.AspNet.EntityDataSource.EntityDataSource GridDetailDataSource = (Microsoft.AspNet.EntityDataSource.EntityDataSource)((sender as RadGrid).NamingContainer).FindControl("GridDetailDataSource"); GridDetailDataSource.ContextTypeName = table.DataContextType.ToString(); if (tblName != null) { GridDetailDataSource.EntitySetName = tblName.TabeName; } else { ((RadGrid)sender).DataSourceID = string.Empty; } }