void Visit(Shape shape) { Writer.WriteStartElement("Shape"); Writer.WriteAttributeString("Type", shape.Metadata.Type); foreach (var item in shape.Items) { Accept(item); } Writer.WriteEndElement(); }
private DisplayContext CreateDisplayContext(Shape shape) { return new DisplayContext { Value = shape, ViewContext = new ViewContext() }; }
public object ShapeExecute(Shape shape) { // disambiguates the call to ShapeExecute(object) as Shape also implements IEnumerable return ShapeExecute((object) shape); }
public Task<IHtmlContent> ShapeExecuteAsync(Shape shape) { // disambiguates the call to ShapeExecute(object) as Shape also implements IEnumerable return ShapeExecuteAsync((object)shape); }
public ShapeDebugView(Shape shape) { _shape = shape; }
public Task<IHtmlContent> DisplayAsync(Shape shape) { return DisplayAsync((object)shape); }
public IHtmlContent Pager_Gap(Shape Shape, dynamic Display) { Shape.Metadata.Alternates.Clear(); Shape.Metadata.Type = "Pager_Link"; ((dynamic)Shape).Tag.AddCssClass("disabled"); return Display(Shape); }
public string Display(Shape shape) { return Display((object) shape); }
public IHtmlContent ActionLink(UrlHelper Url, Shape Shape, object Value) { var RouteValues = (object) ((dynamic)Shape).RouteValues; RouteValueDictionary rvd; if (RouteValues == null) { rvd = new RouteValueDictionary(); } else { rvd = RouteValues as RouteValueDictionary ?? new RouteValueDictionary(RouteValues); } var action = Url.Action((string)rvd["action"], (string)rvd["controller"], rvd); IEnumerable<string> classes = Shape.Classes; IDictionary<string, string> attributes = Shape.Attributes; attributes["href"] = action; string id = Shape.Id; var tag = Shape.GetTagBuilder("a", id, classes, attributes); tag.InnerHtml.AppendHtml(CoerceHtmlString(Value)); return tag; }
public IHtmlContent Pager_Link(IHtmlHelper Html, Shape Shape, dynamic Display, object Value) { Shape.Metadata.Alternates.Clear(); Shape.Metadata.Type = "ActionLink"; return Display(Shape); }
public IHtmlContent Pager_Last(Shape Shape, dynamic Display) { Shape.Metadata.Alternates.Clear(); Shape.Metadata.Type = "Pager_Link"; return Display(Shape); }
public IHtmlContent Pager_Links(Shape Shape, dynamic Display, dynamic New, IHtmlHelper Html, int Page, int PageSize, double TotalItemCount, int? Quantity, object FirstText, object PreviousText, object NextText, object LastText, object GapText, string PagerId // parameter omitted to workaround an issue where a NullRef is thrown // when an anonymous object is bound to an object shape parameter /*object RouteValues*/) { var currentPage = Page; if (currentPage < 1) currentPage = 1; var pageSize = PageSize; var numberOfPagesToShow = Quantity ?? 0; if (Quantity == null || Quantity < 0) numberOfPagesToShow = 7; var totalPageCount = pageSize > 0 ? (int)Math.Ceiling(TotalItemCount / pageSize) : 1; var firstText = FirstText ?? T["<<"]; var previousText = PreviousText ?? T["<"]; var nextText = NextText ?? T[">"]; var lastText = LastText ?? T[">>"]; var gapText = GapText ?? T["..."]; var routeData = new RouteValueDictionary(Html.ViewContext.RouteData.Values); var queryString = _httpContextAccessor.HttpContext.Request.Query; if (queryString != null) { foreach (var key in from string key in queryString.Keys where key != null && !routeData.ContainsKey(key) let value = queryString[key] select key) { routeData[key] = queryString[key]; } } // specific cross-requests route data can be passed to the shape directly (e.g., Orchard.Users) var shapeRoute = (object) ((dynamic)Shape).RouteData; if (shapeRoute != null) { var shapeRouteData = shapeRoute as RouteValueDictionary; if (shapeRouteData == null) { var route = shapeRoute as RouteData; if (route != null) { shapeRouteData = new RouteValueDictionary(route.Values); } } if (shapeRouteData != null) { foreach (var rd in shapeRouteData) { routeData[rd.Key] = rd.Value; } } } int firstPage = Math.Max(1, Page - (numberOfPagesToShow / 2)); int lastPage = Math.Min(totalPageCount, Page + (int)(numberOfPagesToShow / 2)); var pageKey = String.IsNullOrEmpty(PagerId) ? "page" : PagerId; Shape.Classes.Add("pager"); Shape.Metadata.Alternates.Clear(); Shape.Metadata.Type = "List"; // first and previous pages if (Page > 1) { if (routeData.ContainsKey(pageKey)) { routeData.Remove(pageKey); // to keep from having "page=1" in the query string } // first Shape.Add(New.Pager_First(Value: firstText, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); // previous if (currentPage > 2) { // also to keep from having "page=1" in the query string routeData[pageKey] = currentPage - 1; } Shape.Add(New.Pager_Previous(Value: previousText, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); } // gap at the beginning of the pager if (firstPage > 1 && numberOfPagesToShow > 0) { Shape.Add(New.Pager_Gap(Value: gapText, Pager: Shape)); } // page numbers if (numberOfPagesToShow > 0 && lastPage > 1) { for (var p = firstPage; p <= lastPage; p++) { if (p == currentPage) { Shape.Add(New.Pager_CurrentPage(Value: p, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); } else { if (p == 1) routeData.Remove(pageKey); else routeData[pageKey] = p; Shape.Add(New.Pager_Link(Value: p, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); } } } // gap at the end of the pager if (lastPage < totalPageCount && numberOfPagesToShow > 0) { Shape.Add(New.Pager_Gap(Value: gapText, Pager: Shape)); } // next and last pages if (Page < totalPageCount) { // next routeData[pageKey] = Page + 1; Shape.Add(New.Pager_Next(Value: nextText, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); // last routeData[pageKey] = totalPageCount; Shape.Add(New.Pager_Last(Value: lastText, RouteValues: new RouteValueDictionary(routeData), Pager: Shape)); } return Display(Shape); }
public object Display(Shape shape) { return Display((object)shape); }