public DispatcherSubscriptionsStore Subscribe()
{
var store = new DispatcherSubscriptionsStore();
IEnumerable<TypeInfo> handlerTypes = _handlersProvider.GetHandlerTypes();
IEnumerable<HandlerDescriptor> handlerDescriptors = _handlerDescriptorsBuilder.CreateHandlerDescriptors(handlerTypes);
foreach (HandlerDescriptor handlerDescriptor in handlerDescriptors)
{
var actionDescriptors = _actionDescriptorsBuilder.CreateActionDescriptors(handlerDescriptor);
foreach (ActionDescriptor actionDescriptor in actionDescriptors)
{
store.Add(
new DispatcherSubscription(
handlerDescriptor.HandlerType,
actionDescriptor.HandlerAction,
actionDescriptor.MessageType,
actionDescriptor.Priority != DispatchingPriority.Unspecified ? actionDescriptor.Priority : handlerDescriptor.Priority)); //todo move to priority resolver
}
}
return store;
}