private void Reindex(Guid searchIndexId) { PublishingAdminService service = new PublishingAdminService(); service.ReindexSearchContent(PublishingConfig.SearchProviderName, searchIndexId.ToString()); }
private bool PublishingPointExists(PublishingPointDetailViewModel pointDetailViewModel, PublishingAdminService service, Guid itemId) { return service.GetPublishingPoints(PublishingConfig.SearchProviderName, string.Empty, -1, -1, string.Empty).Items.Where(ppoint => ppoint.Title.ToLower() == pointDetailViewModel.Title.ToLower() && ppoint.Id != itemId).FirstOrDefault() != null; }
private void CreateSearchPublishingPoint() { PublishingPointDetailViewModel pointDetailViewModel = this.CreateSearchPointInfo(); PublishingAdminService service = new PublishingAdminService(); Guid itemId = pointDetailViewModel.Id; var publishingManager = PublishingManager.GetManager(); if (!this.PublishingPointExists(pointDetailViewModel, service, itemId)) { PublishingPoint savePoint = publishingManager.CreatePublishingPoint(); PublishingPointFactory.CreatePublishingPointDataItem(pointDetailViewModel.PublishingPointDefinition, savePoint); savePoint.Name = pointDetailViewModel.Title; savePoint.Description = pointDetailViewModel.Description; savePoint.IsActive = pointDetailViewModel.IsActive; savePoint.PublishingPointBusinessObjectName = pointDetailViewModel.PublishingPointBusinessObjectName; var fullSet = new List<WcfPipeSettings>(); fullSet.AddRange(pointDetailViewModel.InboundSettings); fullSet.AddRange(pointDetailViewModel.OutboundSettings); this.ClearDeletedSettings(savePoint, fullSet); this.FillPipeSettings(savePoint, pointDetailViewModel.InboundSettings); this.FillPipeSettings(savePoint, pointDetailViewModel.OutboundSettings); var pipeSettings = publishingManager.GetPipeSettings<RssPipeSettings>(); foreach (var currentPipeSettings in savePoint.PipeSettings.Where(ps => ps.GetType().FullName == typeof(RssPipeSettings).FullName)) { var currentId = currentPipeSettings.Id; var pipeSettingsUrl = ((RssPipeSettings)currentPipeSettings).UrlName; if (pipeSettings.Where(ps => ps.IsInbound == false && ps.UrlName == pipeSettingsUrl && ps.Id != currentId).Any()) { this.ThrowDuplicateUrlException(((RssPipeSettings)currentPipeSettings).UrlName); } } publishingManager.SaveChanges(); pointDetailViewModel.Id = savePoint.Id; MetadataManager.GetManager().SaveChanges(true); service.ReschedulePublishingPointPipes(savePoint, null); var pipeSettingsReset = publishingManager.GetPipeSettings<SearchIndexPipeSettings>().Where(ps => ps.PublishingPoint.Id == pointDetailViewModel.Id).FirstOrDefault(); pipeSettingsReset.CatalogName = System.Text.RegularExpressions.Regex.Replace(SampleConstants.SearchIndexName.ToLowerInvariant(), SampleConstants.SearchIndexFilterExpression, SampleConstants.SearchIndexReplacementString); publishingManager.SaveChanges(); service.ReindexSearchContent(PublishingConfig.SearchProviderName, savePoint.Id.ToString()); } }