internal IAdminPacketService Create() { IEnumerable <Type> packetTransformerTypes = new AssemblyTypeFinder(Assembly.GetExecutingAssembly(), $"{GetType().Namespace}.PacketTransformers") .WithTypeMatcher(new ClassTypeMatcher()) .WithTypeMatcher(ImplementsTypeMatcher.Create <IPacketTransformer>()) .Find(); IEnumerable <Type> messageTransformerTypes = new AssemblyTypeFinder(Assembly.GetExecutingAssembly(), $"{GetType().Namespace}.MessageTransformers") .WithTypeMatcher(new ClassTypeMatcher()) .WithTypeMatcher(ImplementsTypeMatcher.Create <IMessageTransformer>()) .Find(); IPacketTransformer[] packetTransformers = new IPacketTransformer[packetTransformerTypes.Count()]; IMessageTransformer[] messageTransformers = new IMessageTransformer[messageTransformerTypes.Count()]; for (int i = 0; i < packetTransformers.Length; ++i) { packetTransformers[i] = (IPacketTransformer)Activator.CreateInstance(packetTransformerTypes.ElementAt(i)); } for (int i = 0; i < messageTransformers.Length; ++i) { messageTransformers[i] = (IMessageTransformer)Activator.CreateInstance(messageTransformerTypes.ElementAt(i)); } return(new AdminPacketService(packetTransformers, messageTransformers)); }
public void AddTransformer(IMessageTransformer messageTransformer) { messageTransformer.Initialize(dataStoreManager); messageTransformers.Add(messageTransformer); var instance = messageTransformer as IVariableFallbackHandler; if (instance != null) variableHandler.AddFallbackHandler(instance); }
private MessageRouteRule(string name, Type messageType, bool includeDrivedMessageTypes, Type handlerType, IMessageConditionValidator preCondition, IMessageTransformer transformer, IMessageConditionValidator postCondition) { Name = name; MessageType = messageType; IncludeDrivedMessageTypes = includeDrivedMessageTypes; HandlerType = handlerType; PreCondition = preCondition; Transformer = transformer; PostCondition = postCondition; }
public void AddTransformer(IMessageTransformer messageTransformer) { messageTransformer.Initialize(dataStoreManager); messageTransformers.Add(messageTransformer); var instance = messageTransformer as IVariableFallbackHandler; if (instance != null) { variableHandler.AddFallbackHandler(instance); } }
public static MessageRouteRule Create <TTransformerInputMessage, TTransformerOutputMessage, TMessageHandler>( string name, bool includeSubMessageTypes, IMessageConditionValidator <TTransformerInputMessage> preConditionValidator, IMessageTransformer <TTransformerInputMessage, TTransformerOutputMessage> transformer, IMessageConditionValidator <TMessageHandler, TTransformerOutputMessage> postConditionValidator) where TTransformerInputMessage : class, IMessage where TTransformerOutputMessage : class, IMessage where TMessageHandler : class, IMessageHandler <TTransformerOutputMessage> { var route = new MessageRouteRule(name, typeof(TTransformerOutputMessage), includeSubMessageTypes, typeof(TMessageHandler), preConditionValidator, transformer, postConditionValidator); return(route); }
public Flow Transform(IMessageTransformer transformer) { this.steps.Add(msg => transformer.Transform(msg)); return(this); }
private void ThisAddIn_Startup(object sender, EventArgs e) { _phonePatterns = ReadPhonePatternsFromConfig().ToArray(); _transformer = new SimpleMessageTransformer(_phonePatterns); _activeExplorer = Application.ActiveExplorer(); _activeExplorer.SelectionChange += ActiveExplorerSelectionChange; }