private PageRoutingInfo ToRoutingInfo(PageRoute pageRoute, CustomEntityRoute customEntityRoute = null, ICustomEntityRoutingRule rule = null) { return(new PageRoutingInfo() { PageRoute = pageRoute, CustomEntityRoute = customEntityRoute, CustomEntityRouteRule = rule }); }
public CustomEntityRoute Map( CustomEntity dbCustomEntity, ActiveLocale locale ) { if (dbCustomEntity == null) { throw new ArgumentNullException(nameof(dbCustomEntity)); } if (dbCustomEntity.CustomEntityVersions == null) { throw new ArgumentNullException(nameof(dbCustomEntity.CustomEntityVersions)); } var route = new CustomEntityRoute() { CustomEntityDefinitionCode = dbCustomEntity.CustomEntityDefinitionCode, CustomEntityId = dbCustomEntity.CustomEntityId, UrlSlug = dbCustomEntity.UrlSlug, Locale = locale, PublishDate = dbCustomEntity.PublishDate, LastPublishDate = dbCustomEntity.LastPublishDate, PublishStatus = dbCustomEntity.PublishStatusCode == PublishStatusCode.Published ? PublishStatus.Published : PublishStatus.Unpublished, Ordering = dbCustomEntity.Ordering }; bool hasLatestPublishVersion = false; route.Versions = new List <CustomEntityVersionRoute>(); foreach (var dbVersion in dbCustomEntity .CustomEntityVersions .OrderByLatest()) { var version = new CustomEntityVersionRoute() { CreateDate = dbVersion.CreateDate, Title = dbVersion.Title, VersionId = dbVersion.CustomEntityVersionId, WorkFlowStatus = (WorkFlowStatus)dbVersion.WorkFlowStatusId }; if (!hasLatestPublishVersion && version.WorkFlowStatus == WorkFlowStatus.Published) { version.IsLatestPublishedVersion = true; hasLatestPublishVersion = true; } route.Versions.Add(version); } route.HasDraftVersion = route.Versions.Any(v => v.WorkFlowStatus == WorkFlowStatus.Draft); route.HasPublishedVersion = route.Versions.Any(v => v.WorkFlowStatus == WorkFlowStatus.Published); return(route); }
public void MakeUrl(string urlSlug, string expectedUrl) { var customEntityRoute = new CustomEntityRoute() { UrlSlug = urlSlug }; var url = _rule.MakeUrl(_pageRoute, customEntityRoute); url.Should().Be(expectedUrl); }
public void MakeUrl(int customEntityId, string expectedUrl) { var customEntityRoute = new CustomEntityRoute() { CustomEntityId = customEntityId }; var url = _rule.MakeUrl(_pageRoute, customEntityRoute); url.Should().Be(expectedUrl); }
private SiteMapResource MapCustomEntityResource(PageRoute pageRoute, CustomEntityRoute customEntityRoute, IEnumerable <ICustomEntityRoutingRule> allRules) { var version = customEntityRoute.Versions.GetVersionRouting(PublishStatusQuery.Published); if (version == null) { return(null); } var rule = allRules.FirstOrDefault(r => r.RouteFormat == pageRoute.UrlPath); if (rule == null) { return(null); } var resource = new SiteMapResource(); resource.Url = rule.MakeUrl(pageRoute, customEntityRoute); resource.LastModifiedDate = customEntityRoute.PublishDate; resource.Priority = GetPriority(pageRoute); return(resource); }