private void EnsureHandlerSet(SyncHandlerOptions handlerOptions) { if (string.IsNullOrWhiteSpace(handlerOptions.Set)) { handlerOptions.Set = this.DefaultSet; } }
public IEnumerable <string> GetValidGroups(SyncHandlerOptions options = null) { var handlers = GetValidHandlers(options); var groups = handlers .Select(x => x.Handler.Group) .ToList(); groups.AddRange(handlers.Where(x => !string.IsNullOrWhiteSpace(x.Settings.Group)) .Select(x => x.Settings.Group)); return(groups.Distinct()); }
public IEnumerable <ExtendedHandlerConfigPair> GetValidHandlers(SyncHandlerOptions options = null) { if (options == null) { options = new SyncHandlerOptions(this.DefaultSet); } EnsureHandlerSet(options); var set = config.Settings.HandlerSets .Where(x => x.Name.InvariantEquals(options.Set)) .FirstOrDefault(); if (set == null || set.Handlers.Count == 0) { logger.Warn <SyncHandlerFactory>("No Handlers configured for requested set {setName}", options.Set); return(Enumerable.Empty <ExtendedHandlerConfigPair>()); } var configs = new List <ExtendedHandlerConfigPair>(); foreach (var settings in set.Handlers.Where(x => x.Enabled)) { // Get the handler var handler = syncHandlers.ExtendedHandlers .Where(x => x.Alias.InvariantEquals(settings.Alias)) .FirstOrDefault(); // check its valid for the passed group and action. if (handler != null && IsValidGroup(options.Group, handler) && IsValidAction(options.Action, settings.Actions)) { // logger.Debug<SyncHandlerFactory>("Adding {handler} to ValidHandler List", handler.Alias); configs.Add(new ExtendedHandlerConfigPair() { Handler = handler, Settings = settings }); } else { // only log if we are doing the default 'everything' group // because weh nfoing groups we choose not to load things. if (string.IsNullOrWhiteSpace(options.Group)) { logger.Warn <SyncHandlerFactory>("No Handler with {alias} has been loaded", settings.Alias); } } } return(configs.OrderBy(x => x.Handler.Priority)); }
public ExtendedHandlerConfigPair GetValidHandler(string alias, SyncHandlerOptions options = null) => GetValidHandlers(options) .FirstOrDefault(x => x.Handler.Alias.InvariantEquals(alias));
public IEnumerable <ExtendedHandlerConfigPair> GetValidHandlers(string[] aliases, SyncHandlerOptions options = null) => GetValidHandlers(options) .Where(x => aliases.InvariantContains(x.Handler.Alias));
public IEnumerable <string> GetValidGroups(SyncHandlerOptions options = null) => GetValidHandlers(options) .Select(x => x.Handler.Group) .Distinct();
public IEnumerable <ExtendedHandlerConfigPair> GetValidHandlersByEntityType(IEnumerable <string> entityTypes, SyncHandlerOptions options = null) => GetValidHandlers(options) .Where(x => entityTypes.InvariantContains(x.Handler.EntityType));
public ExtendedHandlerConfigPair GetValidHandlerByEntityType(string entityType, SyncHandlerOptions options = null) => GetValidHandlers(options) .Where(x => x.Handler.EntityType.InvariantEquals(entityType)) .FirstOrDefault();
public ExtendedHandlerConfigPair GetValidHandlerByTypeName(string typeName, SyncHandlerOptions options = null) => GetValidHandlers(options) .Where(x => typeName.InvariantEquals(x.Handler.TypeName)) .FirstOrDefault();