コード例 #1
0
 private void EnsureHandlerSet(SyncHandlerOptions handlerOptions)
 {
     if (string.IsNullOrWhiteSpace(handlerOptions.Set))
     {
         handlerOptions.Set = this.DefaultSet;
     }
 }
コード例 #2
0
        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());
        }
コード例 #3
0
        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));
        }
コード例 #4
0
 public ExtendedHandlerConfigPair GetValidHandler(string alias, SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .FirstOrDefault(x => x.Handler.Alias.InvariantEquals(alias));
コード例 #5
0
 public IEnumerable <ExtendedHandlerConfigPair> GetValidHandlers(string[] aliases, SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .Where(x => aliases.InvariantContains(x.Handler.Alias));
コード例 #6
0
 public IEnumerable <string> GetValidGroups(SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .Select(x => x.Handler.Group)
 .Distinct();
コード例 #7
0
 public IEnumerable <ExtendedHandlerConfigPair> GetValidHandlersByEntityType(IEnumerable <string> entityTypes, SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .Where(x => entityTypes.InvariantContains(x.Handler.EntityType));
コード例 #8
0
 public ExtendedHandlerConfigPair GetValidHandlerByEntityType(string entityType, SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .Where(x => x.Handler.EntityType.InvariantEquals(entityType))
 .FirstOrDefault();
コード例 #9
0
 public ExtendedHandlerConfigPair GetValidHandlerByTypeName(string typeName, SyncHandlerOptions options = null)
 => GetValidHandlers(options)
 .Where(x => typeName.InvariantEquals(x.Handler.TypeName))
 .FirstOrDefault();