public void HandleAsync(ApiKeyChangedEvent message) { var enabledApps = _applicationsFactory.SyncEnabled(); var indexers = _indexerFactory.AllProviders().Select(i => (IndexerDefinition)i.Definition).ToList(); SyncIndexers(enabledApps, indexers, true); }
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 override HealthCheck Check() { var blocklist = _indexerDefinitionUpdateService.GetBlocklist(); var oldIndexers = _indexerFactory.AllProviders(false) .Where(i => i.IsObsolete() || (i.Definition.Implementation == "Cardigann" && blocklist.Contains(((CardigannSettings)i.Definition.Settings).DefinitionFile))).ToList(); if (oldIndexers.Count == 0) { return(new HealthCheck(GetType())); } var healthType = HealthCheckResult.Warning; var healthMessage = string.Format(_localizationService.GetLocalizedString("IndexerObsoleteCheckMessage"), string.Join(", ", oldIndexers.Select(v => v.Definition.Name))); return(new HealthCheck(GetType(), healthType, healthMessage, "#indexers-are-obsolete")); }
public override HealthCheck Check() { var currentDefs = _indexerDefinitionUpdateService.All(); var noDefIndexers = _indexerFactory.AllProviders(false) .Where(i => i.Definition.Implementation == "Cardigann" && !currentDefs.Any(d => d.File == ((CardigannSettings)i.Definition.Settings).DefinitionFile)).ToList(); if (noDefIndexers.Count == 0) { return(new HealthCheck(GetType())); } var healthType = HealthCheckResult.Error; var healthMessage = string.Format(_localizationService.GetLocalizedString("IndexerNoDefCheckMessage"), string.Join(", ", noDefIndexers.Select(v => v.Definition.Name))); return(new HealthCheck(GetType(), healthType, healthMessage, "#indexers-have-no-definition")); }