protected void given_operation <T>(Expression <Func <T, object> > method) where T : new() { var visitor = new HandlerMethodVisitor(); visitor.Visit(method); var mi = visitor.Method; Operation = new MethodBasedOperationCreator() .CreateOperation(TypeSystems.Default.From(mi)); }
protected void given_operation <T>(Expression <Func <T, object> > method, IDependencyResolver resolver = null) where T : new() { var mi = HandlerMethodVisitor.FindMethodInfo(method); Operation = new MethodBasedOperationCreator( resolver: resolver, syncInterceptorProvider: resolver == null ? null : new SystemAndAttributesOperationInterceptorProvider(resolver)) .CreateOperation(TypeSystems.Default.From(mi)); }
protected void given_operation(string name, params Type[] parameters) { var method = (from m in Handler.GetMethods() where m.InputMembers.Count() == parameters.Length && m.Name.EqualsOrdinalIgnoreCase(name) let matchingParams = (from parameter in m.InputMembers from typeParameter in parameters where parameter.Type.CompareTo(parameter.TypeSystem.FromClr(typeParameter)) == 0 select parameter).Count() where parameters.Length == 0 || matchingParams == parameters.Length select m).First(); if (method.Owner != Handler) { throw new InvalidOperationException(); } Operation = MethodBasedOperationCreator.CreateOperationDescriptor(method).Create(); }
void CreateOperationsForModel(ResourceModel resourceModel) { var operations = MethodBasedOperationCreator.CreateOperationDescriptors( resourceModel.Handlers.Select(h => h.Type), _asyncInterceptors, FilterMethods, _syncInterceptors, _binderLocator, _resolver).ToList(); foreach (var uri in resourceModel.Uris) { foreach (var operation in operations) { uri.Operations.Add(ToOperationModel(operation)); } } }
public with_per_request_dependency() { Resolver = new InternalDependencyResolver() .Singleton <IContextStore, InMemoryContextStore>(); Resolver.AddDependency <IOperationInterceptor, SystemAttribute>(DependencyLifetime.PerRequest); var mi = HandlerMethodVisitor.FindMethodInfo <Handler>(h => h.Get()); var creator = new MethodBasedOperationCreator( resolver: Resolver, syncInterceptorProvider: new SystemAndAttributesOperationInterceptorProvider(Resolver.Resolve <IEnumerable <IOperationInterceptor> >)); Resolver.AddDependency <IMyService, Service>(DependencyLifetime.PerRequest); var value = creator .CreateOperation(TypeSystems.Default.FromClr <Handler>(), TypeSystems.Default.From(mi)) .InvokeAsync() .Result.ToList(); }
protected void given_operation <T>(Expression <Func <T, object> > method, IDependencyResolver resolver = null) where T : new() { var mi = HandlerMethodVisitor.FindMethodInfo(method); var provider = resolver == null ? null : new SystemAndAttributesOperationInterceptorProvider(resolver.Resolve <IEnumerable <IOperationInterceptor> >); Func <IOperation, IEnumerable <IOperationInterceptor> > syncInterceptorProvider = null; if (provider != null) { syncInterceptorProvider = provider.GetInterceptors; } var asyncInterceptors = resolver == null ? Enumerable.Empty <IOperationInterceptorAsync>() : resolver.Resolve <IEnumerable <IOperationInterceptorAsync> >(); Operation = MethodBasedOperationCreator .CreateOperationDescriptor( TypeSystems.Default.From(mi), () => asyncInterceptors, syncInterceptorProvider, binderLocator: null, resolver: resolver).Create(); }