public void SetIndexSettings(IEnumerable <IndexSettingsModel> settings) { foreach (var item in settings) { var item1 = item; var record = _settingsRepository.Fetch(q => q.ContentType == item1.Name).FirstOrDefault(); if (record == null) { record = new SitemapSettingsRecord(); record.ContentType = item.Name; record.IndexForDisplay = item.IndexForDisplay; record.IndexForXml = item.IndexForXml; record.Priority = item.Priority; record.UpdateFrequency = item.UpdateFrequency; _settingsRepository.Create(record); } else { record.IndexForDisplay = item.IndexForDisplay; record.IndexForXml = item.IndexForXml; record.Priority = item.Priority; record.UpdateFrequency = item.UpdateFrequency; _settingsRepository.Update(record); } } _signals.Trigger("WebAdvanced.Sitemap.IndexSettings"); }
public IEnumerable <IndexSettingsModel> GetIndexSettings() { var settings = _cacheManager.Get <string, IEnumerable <IndexSettingsModel> >("Digic.Sitemap.IndexSettings", ctx => { var contentTypes = _contentManager.GetContentTypeDefinitions() .Where(ctd => ctd.Parts.FirstOrDefault(p => p.PartDefinition.Name == "AutoroutePart") != null) .ToList(); var typeNames = contentTypes.Select(t => t.Name).ToArray(); // Delete everything that no longer corresponds to these allowed content types var toDelete = _settingsRepository.Fetch(q => !typeNames.Contains(q.ContentType)).ToList(); foreach (var record in toDelete) { _settingsRepository.Delete(record); } _settingsRepository.Flush(); var contentSettings = new List <IndexSettingsModel>(); foreach (var type in contentTypes) { var _type = type; // Get the record, generate a new one if it doesn't exist. SitemapSettingsRecord record = _settingsRepository.Fetch(q => q.ContentType == _type.Name).FirstOrDefault(); if (record == null) { record = new SitemapSettingsRecord(); record.ContentType = type.Name; record.IndexForDisplay = false; record.IndexForXml = false; record.Priority = 3; record.UpdateFrequency = "weekly"; _settingsRepository.Create(record); } var model = new IndexSettingsModel() { DisplayName = type.DisplayName, Name = type.Name, IndexForDisplay = record.IndexForDisplay, IndexForXml = record.IndexForXml, Priority = record.Priority, UpdateFrequency = record.UpdateFrequency }; contentSettings.Add(model); } ctx.Monitor(_signals.When("ContentDefinitionManager")); ctx.Monitor(_signals.When("Digic.Sitemap.IndexSettings")); return(contentSettings); }); return(settings); }
public void SetIndexSettings(IEnumerable<IndexSettingsModel> settings) { foreach (var item in settings) { var item1 = item; var record = _settingsRepository.Fetch(q => q.ContentType == item1.Name).FirstOrDefault(); if (record == null) { record = new SitemapSettingsRecord(); record.ContentType = item.Name; record.IndexForDisplay = item.IndexForDisplay; record.IndexForXml = item.IndexForXml; record.Priority = item.Priority; record.UpdateFrequency = item.UpdateFrequency; _settingsRepository.Create(record); } else { record.IndexForDisplay = item.IndexForDisplay; record.IndexForXml = item.IndexForXml; record.Priority = item.Priority; record.UpdateFrequency = item.UpdateFrequency; _settingsRepository.Update(record); } } _signals.Trigger("WebAdvanced.Sitemap.IndexSettings"); }
public IEnumerable<IndexSettingsModel> GetIndexSettings() { var settings = _cacheManager.Get("WebAdvanced.Sitemap.IndexSettings", ctx => { ctx.Monitor(_signals.When("ContentDefinitionManager")); ctx.Monitor(_signals.When("WebAdvanced.Sitemap.IndexSettings")); var contentTypes = _contentDefinitionManager.ListTypeDefinitions() .Where(ctd => ctd.Parts.FirstOrDefault(p => p.PartDefinition.Name == "AutoroutePart") != null) .ToList(); var typeNames = contentTypes.Select(t => t.Name).ToArray(); // Delete everything that no longer corresponds to these allowed content types var toDelete = _settingsRepository.Fetch(q => !typeNames.Contains(q.ContentType)).ToList(); foreach (var record in toDelete) { _settingsRepository.Delete(record); } _settingsRepository.Flush(); var contentSettings = new List<IndexSettingsModel>(); foreach (var type in contentTypes) { var _type = type; // Get the record, generate a new one if it doesn't exist. SitemapSettingsRecord record = _settingsRepository.Fetch(q => q.ContentType == _type.Name).FirstOrDefault(); if (record == null) { record = new SitemapSettingsRecord(); record.ContentType = type.Name; record.IndexForDisplay = false; record.IndexForXml = false; record.Priority = 3; record.UpdateFrequency = "weekly"; _settingsRepository.Create(record); } var model = new IndexSettingsModel() { DisplayName = type.DisplayName, Name = type.Name, IndexForDisplay = record.IndexForDisplay, IndexForXml = record.IndexForXml, Priority = record.Priority, UpdateFrequency = record.UpdateFrequency }; contentSettings.Add(model); } return contentSettings; }); return settings; }