public HttpRequestHandler( ICommunicationModelProvider communicationModelProvider, IDomainServiceProvider domainServiceProvider, IRoutineMethodResolver routineMethodResolver, IMethodInvokerFactory methodInvokerFactory, ISerializerFactorySelector serializerFactorySelector, IEnumerable <IEventDispatcher> eventDispatchers, IUniqueIdGenerator idGenerator, ITransitionCommitter transitionCommitter, IRoutineCompletionNotifier routineCompletionNotifier, IEnumerable <IHttpIntentPreprocessor> intentPreprocessors, IEnumerable <IRoutineTransitionAction> transitionActions, ITransitionUserContext transitionUserContext) { _communicationModelProvider = communicationModelProvider; _domainServiceProvider = domainServiceProvider; _routineMethodResolver = routineMethodResolver; _methodInvokerFactory = methodInvokerFactory; _eventDispatcher = eventDispatchers.FirstOrDefault(); _idGenerator = idGenerator; _transitionCommitter = transitionCommitter; _routineCompletionNotifier = routineCompletionNotifier; _intentPreprocessor = new AggregateHttpIntentPreprocessor(intentPreprocessors); _transitionActions = transitionActions; _transitionUserContext = transitionUserContext; _dasyncJsonSerializer = serializerFactorySelector.Select("dasync+json").Create(); JsonSettings.Converters.Add(new EntityProjectionConverter(communicationModelProvider.Model)); }
public AzureFunctionsFabric( ISerializerFactorySelector serializerFactorySelector, INumericIdGenerator idGenerator, ITransitionRunner transitionRunner, IAzureWebJobsEnviromentalSettings azureWebJobsEnviromentalSettings, ICloudStorageAccountFactory cloudStorageAccountFactory, AzureFunctionsFabricSettings settings, IServiceProxyBuilder serviceProxyBuilder, IRoutineMethodResolver routineMethodResolver, IMethodInvokerFactory methodInvokerFactory, IServiceRegistry serviceRegistry) { _transitionRunner = transitionRunner; _idGenerator = idGenerator; _settings = settings; _serviceProxyBuilder = serviceProxyBuilder; _routineMethodResolver = routineMethodResolver; _methodInvokerFactory = methodInvokerFactory; _serviceRegistry = serviceRegistry; #warning Need configurable serializer // Hard-code this for now. _defaultSerializer = serializerFactorySelector.Select("dasyncjson").Create(); _storageAccountConnectionString = azureWebJobsEnviromentalSettings.DefaultStorageConnectionString; _storageAccount = cloudStorageAccountFactory.Create(_storageAccountConnectionString); //#warning make sure that site name is alpha-numeric and does not start with a number // var prefix = azureWebJobsEnviromentalSettings.WebSiteName.ToLowerInvariant(); var prefix = ""; _routinesTable = _storageAccount.TableClient.GetTableReference(prefix + "routines"); _servicesTable = _storageAccount.TableClient.GetTableReference(prefix + "services"); }
public DefaultFunctionInvokerFactoryTests() { Mock <IMethodInfoLocator> invokerMock = new Mock <IMethodInfoLocator>(MockBehavior.Strict); invokerMock .Setup(p => p.GetMethod(It.IsAny <string>(), It.IsAny <string>())) .Returns(() => _functionMethod); _methodInvokerFactory = CreateMethodInvokerFactory(); _activator = new DefaultFunctionActivator(); _invokerFactory = new DefaultFunctionInvokerFactory(_methodInvokerFactory, _activator, invokerMock.Object); }
public void Create_IfMethodIsNull_Throws() { // Arrange MethodInfo method = null; IMethodInvokerFactory methodInvokerFactory = CreateMethodInvokerFactory(); IFunctionActivator activator = CreateDummyActivator(); IFunctionInvokerFactory _invokerFactory = new DefaultFunctionInvokerFactory(methodInvokerFactory, activator); // Act & Assert var ex = Assert.Throws <ArgumentNullException>(() => _invokerFactory.Create(method)); Assert.Equal("method", ex.ParamName); }
public void Create_ReturnsFunctionInvoker() { // Arrange MethodInfo method = GetMethodInfo(nameof(DefaultFunctionInvokerFactoryTests.StaticReturnVoid)); IMethodInvokerFactory methodInvokerFactory = CreateMethodInvokerFactory(); IFunctionActivator activator = CreateDummyActivator(); IFunctionInvokerFactory _invokerFactory = new DefaultFunctionInvokerFactory(methodInvokerFactory, activator); // Act IFunctionInvoker invoker = _invokerFactory.Create(method); // Assert Assert.IsType <DefaultFunctionInvoker <DefaultFunctionInvokerFactoryTests, object> >(invoker); }
public void Create_IfInstanceAndMethodIsInherited_UsesReflectedType() { // Arrange MethodInfo method = GetMethodInfo(typeof(Subclass), nameof(Subclass.InheritedReturnVoid)); IMethodInvokerFactory methodInvokerFactory = CreateMethodInvokerFactory(); IFunctionActivator activator = new DefaultFunctionActivator(); IFunctionInvokerFactory _invokerFactory = new DefaultFunctionInvokerFactory(methodInvokerFactory, activator); // Act IFunctionInvoker invoker = _invokerFactory.Create(method); // Assert Assert.IsType <DefaultFunctionInvoker <Subclass, object> >(invoker); var typedInvoker = (DefaultFunctionInvoker <Subclass, object>)invoker; Assert.IsType <DefaultFunctionActivator>(typedInvoker.FunctionActivator); }
public void Create_IfInstance_UsesActivatorInstanceFactory() { // Arrange MethodInfo method = GetMethodInfo(nameof(DefaultFunctionInvokerFactoryTests.InstanceReturnVoid)); IMethodInvokerFactory methodInvokerFactory = CreateMethodInvokerFactory(); IFunctionActivator activator = new DefaultFunctionActivator(); IFunctionInvokerFactory _invokerFactory = new DefaultFunctionInvokerFactory(methodInvokerFactory, activator); // Act IFunctionInvoker invoker = _invokerFactory.Create(method); // Assert Assert.IsType <DefaultFunctionInvoker <DefaultFunctionInvokerFactoryTests, object> >(invoker); var typedInvoker = (DefaultFunctionInvoker <DefaultFunctionInvokerFactoryTests, object>)invoker; Assert.IsType <DefaultFunctionActivator>(typedInvoker.FunctionActivator); }
public TransitionCommitter( ICommunicationModelProvider communicationModelProvider, IPlatformHttpClientProvider platformHttpClientProvider, IRoutineCompletionSink routineCompletionSink, IEventDispatcher eventDispatcher, IRoutineMethodResolver routineMethodResolver, IDomainServiceProvider domainServiceProvider, IMethodInvokerFactory methodInvokerFactory, IEnumerable <IRoutineTransitionAction> transitionActions, ITransitionUserContext transitionUserContext) { _communicationModelProvider = communicationModelProvider; _platformHttpClientProvider = platformHttpClientProvider; _routineCompletionSink = routineCompletionSink; _eventDispatcher = eventDispatcher; _routineMethodResolver = routineMethodResolver; _domainServiceProvider = domainServiceProvider; _methodInvokerFactory = methodInvokerFactory; _transitionActions = transitionActions; _transitionUserContext = transitionUserContext; }
public TransitionRunner( ITransitionScope transitionScope, ITransitionCommitter transitionCommitter, IServiceProxyBuilder serviceProxyBuilder, IRoutineMethodResolver routineMethodResolver, IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider, IMethodInvokerFactory methodInvokerFactory, IServiceStateValueContainerProvider serviceStateValueContainerProvider, IntrinsicRoutines intrinsicRoutines, INumericIdGenerator idGenerator) { _transitionScope = transitionScope; _transitionCommitter = transitionCommitter; _serviceProxyBuilder = serviceProxyBuilder; _routineMethodResolver = routineMethodResolver; _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider; _methodInvokerFactory = methodInvokerFactory; _serviceStateValueContainerProvider = serviceStateValueContainerProvider; _intrinsicRoutines = intrinsicRoutines; _idGenerator = idGenerator; }
public TransitionRunner( ITransitionScope transitionScope, ITransitionCommitter transitionCommitter, IServiceProxyBuilder serviceProxyBuilder, IRoutineMethodResolver routineMethodResolver, IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider, IMethodInvokerFactory methodInvokerFactory, //IServiceStateValueContainerProvider serviceStateValueContainerProvider, IntrinsicRoutines intrinsicRoutines, IUniqueIdGenerator idGenerator, ITaskCompletionSourceRegistry taskCompletionSourceRegistry) { _transitionScope = transitionScope; _transitionCommitter = transitionCommitter; _serviceProxyBuilder = serviceProxyBuilder; _routineMethodResolver = routineMethodResolver; _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider; _methodInvokerFactory = methodInvokerFactory; //_serviceStateValueContainerProvider = serviceStateValueContainerProvider; _intrinsicRoutines = intrinsicRoutines; _idGenerator = idGenerator; _taskCompletionSourceRegistry = taskCompletionSourceRegistry; }
public ProxyMethodExecutor( ITransitionScope transitionScope, IMethodIdProvider routineMethodIdProvider, IEventIdProvider eventIdProvider, IUniqueIdGenerator numericIdGenerator, IRoutineCompletionNotifier routineCompletionNotifier, IEventSubscriber eventSubscriber, ICommunicationSettingsProvider communicationSettingsProvider, IMethodInvokerFactory methodInvokerFactory, ISingleMethodInvoker singleMethodInvoker, ISingleEventPublisher singleEventPublisher) { _transitionScope = transitionScope; _routineMethodIdProvider = routineMethodIdProvider; _eventIdProvider = eventIdProvider; _idGenerator = numericIdGenerator; _routineCompletionNotifier = routineCompletionNotifier; _eventSubscriber = eventSubscriber; _communicationSettingsProvider = communicationSettingsProvider; _methodInvokerFactory = methodInvokerFactory; _singleMethodInvoker = singleMethodInvoker; _singleEventPublisher = singleEventPublisher; }
private static IFunctionInvoker CreateGeneric <TReflected, TReturnValue>(MethodInfo method, IMethodInvokerFactory methodInvokerFactory, IFunctionActivator functionActivator) { List <string?> parameterNames = method.GetParameters().Select(p => p.Name).ToList(); IMethodInvoker <TReflected, TReturnValue> methodInvoker = methodInvokerFactory.Create <TReflected, TReturnValue>(method); return(new DefaultFunctionInvoker <TReflected, TReturnValue>(methodInvoker, functionActivator)); }
public DefaultFunctionInvokerFactory(IMethodInvokerFactory methodInvokerFactory, IFunctionActivator functionActivator, IMethodInfoLocator methodLocator) { _methodInvokerFactory = methodInvokerFactory ?? throw new ArgumentNullException(nameof(methodInvokerFactory)); _functionActivator = functionActivator ?? throw new ArgumentNullException(nameof(functionActivator)); _methodLocator = methodLocator ?? throw new ArgumentNullException(nameof(methodLocator)); }
public DefaultGoGoFactory(IMethodDescriptorCollectionProvider methodDescriptorCollectionProvider, IMethodInvokerFactory methodInvokerFactory) { _methodDescriptorCollectionProvider = methodDescriptorCollectionProvider; _methodInvokerFactory = methodInvokerFactory; }
public EventResolver(IMethodInvokerFactory methodInvokerFactory) { _methodInvokerFactory = methodInvokerFactory; }