public DateTime GetLastPublishedDateByUri(string uri) { TcmUri tcmUri = new TcmUri(uri); Tridion.ContentDelivery.Meta.IComponentMeta componentMeta = GetTridionComponentMetaFactory(tcmUri.PublicationId).GetMeta(tcmUri.ItemId); return(componentMeta == null ? DateTime.MinValue : componentMeta.LastPublicationDate); }
public DateTime GetLastPublishedDate(string uri) { TcmUri tcmUri = new TcmUri(uri); TMeta.IComponentMeta cmeta = GetComponentMetaFactory(tcmUri.PublicationId).GetMeta(tcmUri.ItemId); return(cmeta == null ? DateTime.Now : cmeta.LastPublicationDate); }
public IBinaryMeta GetBinaryMetaByUri(string uri) { Tridion.ContentDelivery.Meta.BinaryMeta binaryMeta = null; binaryMeta = BinaryMetaFactory.GetMeta(uri); if (binaryMeta == null) { LoggerService.Debug($"cannot find binary with uri {uri}"); return(null); } DD4T.ContentModel.BinaryMeta bm = new ContentModel.BinaryMeta() { Id = uri, VariantId = binaryMeta.VariantId, }; Tridion.ContentDelivery.Meta.IComponentMeta componentMeta = GetTridionComponentMetaFactory(binaryMeta.PublicationId).GetMeta(binaryMeta.Id); if (componentMeta == null) { LoggerService.Debug($"no component metadata found for binary with uri {uri}"); bm.HasLastPublishedDate = false; return(bm); } bm.HasLastPublishedDate = true; bm.LastPublishedDate = componentMeta.LastPublicationDate; LoggerService.Debug(string.Format("returning binary for uri {0} with the following metadata: Id = {1}, VariantId = {2}, HasLastPublishDate = {3}, lastPublishDate = {4}", uri, bm.Id, bm.VariantId, bm.HasLastPublishedDate, bm.LastPublishedDate)); return(bm); }
/// <summary> /// Creates a lightweight DD4T Component that contains enough information such that the semantic model builder can cope and build a strongly typed model from it. /// </summary> /// <param name="componentMeta">A <see cref="DD4T.ContentModel.IComponentMeta"/> instance obtained from CD API.</param> /// <returns>A DD4T Component.</returns> private static IComponent CreateComponent(IComponentMeta componentMeta) { Component component = new Component { Id = $"tcm:{componentMeta.PublicationId}-{componentMeta.Id}", LastPublishedDate = componentMeta.LastPublicationDate, RevisionDate = componentMeta.ModificationDate, Schema = new Schema { PublicationId = componentMeta.PublicationId.ToString(), Id = $"tcm:{componentMeta.PublicationId}-{componentMeta.SchemaId}" }, MetadataFields = new FieldSet() }; FieldSet metadataFields = new FieldSet(); component.MetadataFields.Add("standardMeta", new Field { EmbeddedValues = new List <FieldSet> { metadataFields } }); foreach (DictionaryEntry de in componentMeta.CustomMeta.NameValues) { object v = ((NameValuePair)de.Value).Value; if (v == null) { continue; } string k = de.Key.ToString(); metadataFields.Add(k, new Field { Name = k, Values = new List <string> { v.ToString() } }); } // The semantic mapping requires that some metadata fields exist. This may not be the case so we map some component meta properties onto them // if they don't exist. if (!metadataFields.ContainsKey("dateCreated")) { metadataFields.Add("dateCreated", new Field { Name = "dateCreated", DateTimeValues = new List <DateTime> { componentMeta.LastPublicationDate } }); } if (!metadataFields.ContainsKey("name")) { metadataFields.Add("name", new Field { Name = "name", Values = new List <string> { componentMeta.Title } }); } return(component); }
public IBinaryMeta GetBinaryMetaByUrl(string url) { LoggerService.Debug($"started GetBinaryMetaByUrl for url {url} with publication id {PublicationId}"); string encodedUrl = HttpUtility.UrlPathEncode(url); // ?? why here? why now? LoggerService.Debug($"using encodedUrl: {encodedUrl}"); Tridion.ContentDelivery.Meta.BinaryMeta binaryMeta = null; if (this.PublicationId == 0) { IList metas = BinaryMetaFactory.GetMetaByUrl(encodedUrl); if (metas.Count == 0) { return(null); } binaryMeta = metas[0] as Tridion.ContentDelivery.Meta.BinaryMeta; } else { binaryMeta = BinaryMetaFactory.GetMetaByUrl(this.PublicationId, encodedUrl); } if (binaryMeta == null) { LoggerService.Debug($"cannot find binary with URL {url}"); return(null); } LoggerService.Debug($"found binarymeta with ID {binaryMeta.Id}"); string uri = string.Format("tcm:{0}-{1}", binaryMeta.PublicationId, binaryMeta.Id); DD4T.ContentModel.BinaryMeta bm = new ContentModel.BinaryMeta() { Id = uri, VariantId = binaryMeta.VariantId, }; LoggerService.Debug("about to call ComponentMetaFactory.GetMeta"); Tridion.ContentDelivery.Meta.IComponentMeta componentMeta = GetTridionComponentMetaFactory(binaryMeta.PublicationId).GetMeta(binaryMeta.Id); if (componentMeta == null) { LoggerService.Debug($"no component metadata found for binary with url {url}"); bm.HasLastPublishedDate = false; return(bm); } LoggerService.Debug($"found component meta with LastPublishDate {componentMeta.LastPublicationDate}"); bm.HasLastPublishedDate = true; bm.LastPublishedDate = componentMeta.LastPublicationDate; LoggerService.Debug(string.Format("returning binary for url {0} with the following metadata: Id = {1}, VariantId = {2}, HasLastPublishDate = {3}, lastPublishDate = {4}", url, bm.Id, bm.VariantId, bm.HasLastPublishedDate, bm.LastPublishedDate)); return(bm); }
public DateTime GetLastPublishedDateByUrl(string url) { string encodedUrl = HttpUtility.UrlPathEncode(url); // ?? why here? why now? Tridion.ContentDelivery.Meta.BinaryMeta binaryMeta = null; if (this.PublicationId == 0) { IList metas = BinaryMetaFactory.GetMetaByUrl(encodedUrl); if (metas.Count == 0) { return(DateTime.MinValue.AddSeconds(1)); // TODO: use nullable type } binaryMeta = metas[0] as Tridion.ContentDelivery.Meta.BinaryMeta; } else { binaryMeta = BinaryMetaFactory.GetMetaByUrl(this.PublicationId, encodedUrl); } Tridion.ContentDelivery.Meta.IComponentMeta componentMeta = GetTridionComponentMetaFactory(binaryMeta.PublicationId).GetMeta(binaryMeta.Id); return(componentMeta == null ? DateTime.MinValue : componentMeta.LastPublicationDate); }