public static void RegisterViewModels( this IEnumerable <TypeScanResult> enumerable, IRegisterCallbacks callbacks) { Guard.NotNull(callbacks, nameof(callbacks)); Guard.NotNull(enumerable, nameof(enumerable)); foreach (var typeScanResult in enumerable) { if (typeScanResult.Type.Name.Contains(ViewModelConvention)) { callbacks.SingletonRegisterCallback(typeScanResult.Type, typeScanResult.Type); } } }
public static IEnumerable <TypeScanResult> RegisterDocuments( this IEnumerable <TypeScanResult> enumerable, IRegisterCallbacks callbacks) { foreach (var typeScanResult in enumerable) { if (typeof(IDocument).IsAssignableFrom(typeScanResult.Type)) { callbacks.CallScopeRegisterCallback(typeScanResult.Type, typeScanResult.Type); } else { yield return(typeScanResult); } } }
public GatewayAppInitializer(IRegisterCallbacks registerCallbacks) { Guard.NotNull(registerCallbacks, nameof(registerCallbacks)); this.registerCallbacks = registerCallbacks; }
public static IEnumerable <TypeScanResult> RegisterDialogs( this IEnumerable <TypeScanResult> enumerable, IRegisterCallbacks callbacks) { return(enumerable.RegisterComponents(typeof(IHaveDialogResult <>), callbacks.CallScopeRegisterCallback)); }
public static IEnumerable <TypeScanResult> RegisterStatusBar( this IEnumerable <TypeScanResult> enumerable, IRegisterCallbacks callbacks) { return(enumerable.RegisterComponents <IStatusBarViewModel>(callbacks.SingletonRegisterCallback)); }
public static IEnumerable <TypeScanResult> RegisterMenu( this IEnumerable <TypeScanResult> enumerable, IRegisterCallbacks callbacks) { return(enumerable.RegisterComponents <IMenuComponent>(callbacks.SingletonRegisterCallback)); }
public static void SubscribeMessage(this ConsumerScanResult consumerScanResult, IRegisterCallbacks registerCallbacks) { var contract = consumerScanResult.GetConsumerContract(); registerCallbacks.SingletonRegisterCallback(typeof(IConsumerDefinition), contract.ConsumerDefinition); registerCallbacks.CallScopeRegisterCallback(contract.ConsumerInterface, contract.Consumer); registerCallbacks.CallScopeRegisterCallback(contract.MessageHandlerInterface, contract.Adapter, Guid.NewGuid().ToString()); }
public static void SubscribeMessages(this IEnumerable <ConsumerScanResult> enumerable, IRegisterCallbacks registerCallbacks) { Guard.NotNull(registerCallbacks, nameof(registerCallbacks)); Guard.NotNull(enumerable, nameof(enumerable)); foreach (var handlerScanResult in enumerable) { handlerScanResult.SubscribeMessage(registerCallbacks); } }
public ViewModelAppInitializer(IRegisterCallbacks registerCallbacks) { Guard.NotNull(registerCallbacks, nameof(registerCallbacks)); this.registerCallbacks = registerCallbacks; }
public static void RedirectMessages(this IEnumerable <MessageScanResult> enumerable, IRegisterCallbacks registerCallbacks) { Guard.NotNull(registerCallbacks, nameof(registerCallbacks)); Guard.NotNull(enumerable, nameof(enumerable)); var adapterMap = new Dictionary <Type, AdapterFactory> { { typeof(ICommand), (mt, mit) => typeof(RedirectCommandConsumer <>).MakeGenericType(mt) }, { typeof(IEvent), (mt, mit) => typeof(RedirectEventConsumer <>).MakeGenericType(mt) }, { typeof(ITransaction <>), (mt, mit) => typeof(RedirectRequestConsumer <,>).MakeGenericType(mt, mit.GetGenericArguments()[0]) }, { typeof(IRequest <>), (mt, mit) => typeof(RedirectRequestConsumer <,>).MakeGenericType(mt, mit.GetGenericArguments()[0]) } }; foreach (var messageScanResult in enumerable) { var messageType = messageScanResult.Type; var messageInterfaces = messageType.GetInterfaces(); foreach (var messageInterface in messageInterfaces) { var interfaceDefinition = messageInterface.GetTypeDefinition(); if (adapterMap.ContainsKey(interfaceDefinition)) { var consumer = adapterMap[interfaceDefinition](messageType, messageInterface); var handlerScanResult = new RedirectConsumerScanResult(consumer); handlerScanResult.SubscribeMessage(registerCallbacks); break; } } } }