Ejemplo n.º 1
0
        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 Reindex(Guid searchIndexId)
 {
     PublishingAdminService service = new PublishingAdminService();
     service.ReindexSearchContent(PublishingConfig.SearchProviderName, searchIndexId.ToString());
 }
        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());
            }
        }