public IActionResult SaveAll(IndexerEditorResource resource) { var indexersToUpdate = _indexerService.AllProviders(false).Select(x => (IndexerDefinition)x.Definition).Where(d => resource.IndexerIds.Contains(d.Id)); foreach (var indexer in indexersToUpdate) { if (resource.Enable.IsNotNullOrWhiteSpace()) { indexer.Enable = bool.Parse(resource.Enable); } if (resource.AppProfileId.HasValue) { indexer.AppProfileId = resource.AppProfileId.Value; } if (resource.Tags != null) { var newTags = resource.Tags; var applyTags = resource.ApplyTags; switch (applyTags) { case ApplyTags.Add: newTags.ForEach(t => indexer.Tags.Add(t)); break; case ApplyTags.Remove: newTags.ForEach(t => indexer.Tags.Remove(t)); break; case ApplyTags.Replace: indexer.Tags = new HashSet <int>(newTags); break; } } } _indexerService.Update(indexersToUpdate); var indexers = _indexerService.All(); foreach (var definition in indexers) { _indexerService.SetProviderCharacteristics(definition); } return(Accepted(_resourceMapper.ToResource(indexers))); }
public object DeleteIndexers([FromBody] IndexerEditorResource resource) { _indexerService.DeleteIndexers(resource.IndexerIds); return(new { }); }