public void SetCustomRoutes(IEnumerable <CustomRouteModel> routes) { var existingRouteIds = new List <int>(); foreach (var model in routes) { // Throw out empty urls if (String.IsNullOrEmpty(model.Url)) { continue; } if (model.Url.Trim() == String.Empty) { continue; } var customRouteModel = model; var record = _customRouteRepository.Fetch(q => q.Url == customRouteModel.Url).FirstOrDefault(); if (record == null) { record = new SitemapCustomRouteRecord { IndexForDisplay = model.IndexForDisplay, IndexForXml = model.IndexForXml, Priority = model.Priority, Url = model.Url ?? String.Empty, UpdateFrequency = model.UpdateFrequency }; _customRouteRepository.Create(record); } else { record.IndexForDisplay = model.IndexForDisplay; record.IndexForXml = model.IndexForXml; record.Priority = model.Priority; record.UpdateFrequency = model.UpdateFrequency; _customRouteRepository.Update(record); } existingRouteIds.Add(record.Id); } _customRouteRepository.Flush(); var toDelete = _customRouteRepository.Fetch(q => !existingRouteIds.Contains(q.Id)); foreach (var record in toDelete) { _customRouteRepository.Delete(record); } _customRouteRepository.Flush(); _signals.Trigger("WebAdvanced.Sitemap.CustomRoutes"); }
public void SetCustomRoutes(IEnumerable <CustomRouteModel> routes) { var existingRouteIds = new List <int>(); foreach (var model in routes) { // Treat empty url as over-ride for root path if (string.IsNullOrWhiteSpace(model.Url)) { model.Url = string.Empty; } var customRouteModel = model; var record = _customRouteRepository.Get(q => q.Url == model.Url); if (record == null) { record = new SitemapCustomRouteRecord { IndexForDisplay = model.IndexForDisplay, IndexForXml = model.IndexForXml, Priority = model.Priority, Url = model.Url ?? String.Empty, UpdateFrequency = model.UpdateFrequency }; _customRouteRepository.Create(record); } else { record.IndexForDisplay = model.IndexForDisplay; record.IndexForXml = model.IndexForXml; record.Priority = model.Priority; record.UpdateFrequency = model.UpdateFrequency; _customRouteRepository.Update(record); } existingRouteIds.Add(record.Id); } _customRouteRepository.Flush(); var toDelete = _customRouteRepository.Fetch(q => !existingRouteIds.Contains(q.Id)); foreach (var record in toDelete) { _customRouteRepository.Delete(record); } _customRouteRepository.Flush(); _signals.Trigger("Digic.Sitemap.CustomRoutes"); }