public ICollection <SitemapItemRecord> GetSitemapItemRecords(Store store, SitemapItemOptions options, string urlTemplate, string baseUrl, IEntity entity = null) { var auditableEntity = entity as AuditableEntity; var result = new SitemapItemRecord { ModifiedDate = auditableEntity != null ? auditableEntity.ModifiedDate.Value : DateTime.UtcNow, Priority = options.Priority, UpdateFrequency = options.UpdateFrequency, Url = UrlBuilder.BuildStoreUrl(store, store.DefaultLanguage, urlTemplate, baseUrl, entity) }; if (entity is ISeoSupport seoSupport) { foreach (var seoInfo in seoSupport.SeoInfos.Where(x => x.IsActive)) { if (store.Languages.Contains(seoInfo.LanguageCode) && !store.DefaultLanguage.EqualsInvariant(seoInfo.LanguageCode)) { var alternate = new SitemapItemAlternateLinkRecord { Language = seoInfo.LanguageCode, Type = "alternate", Url = UrlBuilder.BuildStoreUrl(store, seoInfo.LanguageCode, urlTemplate, baseUrl, entity) }; result.Alternates.Add(alternate); } } } return(new[] { result }.ToList()); }
public virtual SitemapItemXmlRecord ToXmlModel(SitemapItemRecord coreModel) { if (coreModel == null) { throw new ArgumentNullException(nameof(coreModel)); } //ModifiedDate = coreModel.ModifiedDate.ToString("yyyy-MM-dd"); Priority = coreModel.Priority; UpdateFrequency = coreModel.UpdateFrequency; Url = coreModel.Url; Alternates = coreModel.Alternates.Count > 0 ? coreModel.Alternates.Select(a => (new SitemapItemAlternateLinkXmlRecord()).ToXmlModel(a)).ToList() : null; return(this); }