internal static IController TrySetActionInvoker(this IController iController, IGlimpseLogger logger) { var controller = iController as Controller; if (controller == null) { //TODO: Add Logging return iController; } var actionInvoker = controller.ActionInvoker; if (actionInvoker.CanSupportDynamicProxy(logger)) { var proxyConfig = new Dictionary<string, IInterceptor> { {"GetFilters", new GetFiltersInterceptor()}, {"InvokeActionResult", new InvokeActionResultInterceptor()}, {"InvokeActionMethod",new InvokeActionMethodInterceptor()} }; var proxyGenerator = new ProxyGenerator(); var proxyGenOptions = new ProxyGenerationOptions(new SimpleProxyGenerationHook(logger, proxyConfig.Keys.ToArray())) { Selector = new SimpleInterceptorSelector(proxyConfig) }; var newInvoker = (ControllerActionInvoker)proxyGenerator.CreateClassProxy(actionInvoker.GetType(), proxyGenOptions, proxyConfig.Values.ToArray()); controller.ActionInvoker = newInvoker; } return controller; }
public NH(IGlimpseFactory factory) { _logger = factory.CreateLogger(); _nhibernateInfoProvider = new NHibernateInfoProvider(); _profileDbDriverFactory = new GlimpseProfileDbDriverFactory(); _profileDbDriverActivator = new GlimpseProfileDbDriverActivator(); }
public WrapDbDriver(IGlimpseLogger logger, INHibernateInfoProvider nhibernateInfoProvider, IGlimpseProfileDbDriverFactory profileDbDriverFactory, IGlimpseProfileDbDriverActivator profileDbDriverActivator) { if (logger == null) { throw new ArgumentNullException("logger"); } if (nhibernateInfoProvider == null) { throw new ArgumentNullException("nhibernateInfoProvider"); } if (profileDbDriverFactory == null) { throw new ArgumentNullException("profileDbDriverFactory"); } if (profileDbDriverActivator == null) { throw new ArgumentNullException("profileDbDriverActivator"); } _logger = logger; _nhibernateInfoProvider = nhibernateInfoProvider; _profileDbDriverFactory = profileDbDriverFactory; _profileDbDriverActivator = profileDbDriverActivator; }
internal static bool CanSupportDynamicProxy(this IActionInvoker actionInvoker, IGlimpseLogger logger) { if (actionInvoker is ControllerActionInvoker)//TODO: What changes for AsyncControllerActionInvoker? { //Make sure there is a parameterless constructor and the type is not sealed var actionInvokerType = actionInvoker.GetType(); var proxy = actionInvoker as IProxyTargetAccessor; var defaultConstructor = actionInvokerType.GetConstructor(new Type[] { }); var result = (!actionInvokerType.IsSealed && defaultConstructor != null && proxy == null); if (!result) { //TODO: Add logging } return result; } //logger.Warn(actionInvoker.GetType() + " is not a System.Web.Mvc.ControllerActionInvoker."); //TODO add logging warnings.Add(new NotAControllerActionInvokerWarning(actionInvoker)); return false; }
public NH(IGlimpseFactory factory) { _logger = factory.CreateLogger(); _nhibernateInfoProvider = new NHibernateInfoProvider(); _profileDbDriverFactory = new GlimpseProfileDbDriverFactory(); _profileDbDriverActivator = new GlimpseProfileDbDriverActivator(); }
internal AdoPipelineInitiator(IGlimpseLogger logger) { Logger = logger; //Note order of execution is important. Providers = new List<IWrapperInjectorProvider> { new WrapDbProviderFactories(Logger), new WrapDbConnectionFactories(Logger), new WrapCachedMetadata(Logger) }; }
internal AdoPipelineInitiator(IGlimpseLogger logger) { Logger = logger; try { DbProviderFactories.GetFactory("Anything"); } catch (ArgumentException ex) { Logger.Info("Expected DbProviderFactories exception due too the way the API works.", ex); } }
public GlimpseSerializer(IGlimpseFactory factory) { Logger = factory.CreateLogger(); Settings = new JsonSerializerSettings { ContractResolver = new GlimpseContractResolver() }; Settings.Error += (obj, args) => { Logger.Warn("Serializer error", args.ErrorContext.Error); args.ErrorContext.Handled = true; }; Settings.Converters.Add(new JavaScriptDateTimeConverter()); DefaultFormatting = Formatting.None; }
internal static bool CanSupportDynamicProxy(this IModelBinder modelBinder, IGlimpseLogger logger) { if (modelBinder is DefaultModelBinder) { //Make sure there is a parameterless constructor and the type is not sealed var modelBinderType = modelBinder.GetType(); var proxy = modelBinder as IProxyTargetAccessor; var defaultConstructor = modelBinderType.GetConstructor(new Type[] { }); var result = (!modelBinderType.IsSealed && defaultConstructor != null && proxy == null); if (!result) logger.Warn("Cannot create proxy of " + modelBinder.GetType() +". Object must have a parameterless constructor, cannot be sealed, and cannot already be a proxy object."); return result; } logger.Warn(modelBinder.GetType() + " is not a System.Web.Mvc.DefaultModelBinder."); return false; }
internal static bool CanSupportDynamicProxy(this IModelBinder modelBinder, IGlimpseLogger logger) { if (modelBinder is DefaultModelBinder) { //Make sure there is a parameterless constructor and the type is not sealed var modelBinderType = modelBinder.GetType(); var proxy = modelBinder as IProxyTargetAccessor; var defaultConstructor = modelBinderType.GetConstructor(new Type[] { }); var result = (!modelBinderType.IsSealed && defaultConstructor != null && proxy == null); if (!result) { logger.Warn("Cannot create proxy of " + modelBinder.GetType() + ". Object must have a parameterless constructor, cannot be sealed, and cannot already be a proxy object."); } return(result); } logger.Warn(modelBinder.GetType() + " is not a System.Web.Mvc.DefaultModelBinder."); return(false); }
public ActionInvokerProxyGenerationHook(IGlimpseLogger logger) { Logger = logger; }
public GlimpseControllerFactory(IControllerFactory controllerFactory, IGlimpseLogger logger) { ControllerFactory = controllerFactory; Logger = logger; }
public NH(IGlimpseFactory factory) { Logger = factory.CreateLogger(); }
public GlimpseDependencyResolver(IDependencyResolver dependencyResolver, IGlimpseLogger logger) { DependencyResolver = dependencyResolver; Logger = logger; }
public GlimpsePipelineInitiator(IGlimpseLogger logger) { Logger = logger; }
public GlimpseRequestValidator(IEnumerable <IGlimpseValidator> validators, IGlimpseFactory factory) { Validators = validators; Logger = factory.CreateLogger(); }
public WrapDbConnectionFactories(IGlimpseLogger logger) { Logger = logger; }
public WrapDbDriver(IGlimpseLogger logger) { Logger = logger; }
public WrapCachedMetadata(IGlimpseLogger logger) { Logger = logger; }
public SimpleProxyGenerationHook(IGlimpseLogger logger, string[] methods) { Logger = logger; Methods = methods; }
internal static bool CanSupportDynamicProxy(this IActionInvoker actionInvoker, IGlimpseLogger logger) { if (actionInvoker is ControllerActionInvoker)//TODO: What changes for AsyncControllerActionInvoker? { //Make sure there is a parameterless constructor and the type is not sealed var actionInvokerType = actionInvoker.GetType(); var proxy = actionInvoker as IProxyTargetAccessor; var defaultConstructor = actionInvokerType.GetConstructor(new Type[] { }); var result = (!actionInvokerType.IsSealed && defaultConstructor != null && proxy == null); if (!result) { //TODO: Add logging } return(result); } //logger.Warn(actionInvoker.GetType() + " is not a System.Web.Mvc.ControllerActionInvoker."); //TODO add logging warnings.Add(new NotAControllerActionInvokerWarning(actionInvoker)); return(false); }
public CreateControllerInterceptor(IGlimpseLogger logger) { Logger = logger; }
public WrapDbConnectionFactories(IGlimpseLogger logger) { Logger = logger; }
internal static bool CanSupportDynamicProxy(this IControllerFactory controllerFactory, IGlimpseLogger logger) { //Make sure there is a parameterless constructor and the type is not sealed var controllerFactoryType = controllerFactory.GetType(); var proxy = controllerFactory as IProxyTargetAccessor; var defaultConstructor = controllerFactoryType.GetConstructor(new Type[] { }); var result = (!controllerFactoryType.IsSealed && defaultConstructor != null && proxy == null); if (!result) { //TODO: Add logging } return(result); }
internal static IController TrySetActionInvoker(this IController iController, IGlimpseLogger logger) { var controller = iController as Controller; if (controller == null) { //TODO: Add Logging return(iController); } var actionInvoker = controller.ActionInvoker; if (actionInvoker.CanSupportDynamicProxy(logger)) { var proxyConfig = new Dictionary <string, IInterceptor> { { "GetFilters", new GetFiltersInterceptor() }, { "InvokeActionResult", new InvokeActionResultInterceptor() }, { "InvokeActionMethod", new InvokeActionMethodInterceptor() } }; var proxyGenerator = new ProxyGenerator(); var proxyGenOptions = new ProxyGenerationOptions(new SimpleProxyGenerationHook(logger, proxyConfig.Keys.ToArray())) { Selector = new SimpleInterceptorSelector(proxyConfig) }; var newInvoker = (ControllerActionInvoker)proxyGenerator.CreateClassProxy(actionInvoker.GetType(), proxyGenOptions, proxyConfig.Values.ToArray()); controller.ActionInvoker = newInvoker; } return(controller); }
public WrapDbDriver(IGlimpseLogger logger) { Logger = logger; }
public SimpleProxyGenerationHook(IGlimpseLogger logger, string[] methods) { Logger = logger; Methods = methods; }
internal static IControllerFactory Proxy(this IControllerFactory iControllerFactory, IGlimpseLogger logger) { if (iControllerFactory.CanSupportDynamicProxy(logger)) { var proxyConfig = new Dictionary <string, IInterceptor> { { "CreateController", new CreateControllerInterceptor(logger) } }; var proxyGenerator = new ProxyGenerator(); var proxyGenOptions = new ProxyGenerationOptions(new SimpleProxyGenerationHook(logger, proxyConfig.Keys.ToArray())) { Selector = new SimpleInterceptorSelector(proxyConfig) }; var newInvoker = (IControllerFactory)proxyGenerator.CreateClassProxy(iControllerFactory.GetType(), proxyGenOptions, proxyConfig.Values.ToArray()); return(newInvoker); } logger.Warn("Unable to proxy {0}", iControllerFactory.GetType()); return(iControllerFactory); //if (iControllerFactory is GlimpseControllerFactory) return iControllerFactory; //return new GlimpseControllerFactory(iControllerFactory, logger); }
public GlimpseDependencyResolver(IDependencyResolver dependencyResolver, IGlimpseLogger logger) { DependencyResolver = dependencyResolver; Logger = logger; }
public GlimpseBinderProvider(IModelBinderProvider binderProvider, IGlimpseLogger logger) { BinderProvider = binderProvider; Logger = logger; }
internal static IModelBinder CreateDynamicProxy(this IModelBinder modelBinder, IGlimpseLogger logger) { var proxyConfig = new Dictionary <string, IInterceptor> { { "BindModel", new BindModelInterceptor() }, { "BindProperty", new BindPropertyInterceptor() }, { "CreateModel", new CreateModelInterceptor() }, }; var proxyGenerator = new ProxyGenerator(); var proxyGenOptions = new ProxyGenerationOptions(new SimpleProxyGenerationHook(logger, proxyConfig.Keys.ToArray())) { Selector = new SimpleInterceptorSelector(proxyConfig) }; return((IModelBinder)proxyGenerator.CreateClassProxy(modelBinder.GetType(), proxyGenOptions, proxyConfig.Values.ToArray())); }
public WrapDbProviderFactories(IGlimpseLogger logger) { Logger = logger; }
public GlimpseBinderProvider(IModelBinderProvider binderProvider, IGlimpseLogger logger) { BinderProvider = binderProvider; Logger = logger; }
public Execution(IGlimpseFactory factory) { Logger = factory.CreateLogger(); }
public GlimpsePipelineInitiator(IGlimpseLogger logger) { Logger = logger; }
public Binders(IGlimpseFactory factory) { Logger = factory.CreateLogger(); }
public WrapDbProviderFactories(IGlimpseLogger logger) { Logger = logger; }
internal static IControllerFactory Wrap(this IControllerFactory iControllerFactory, IGlimpseLogger logger) { if (iControllerFactory is GlimpseControllerFactory) return iControllerFactory; return new GlimpseControllerFactory(iControllerFactory, logger); }
public WrapCachedMetadata(IGlimpseLogger logger) { Logger = logger; }
public SQL(IGlimpseFactory factory) { Logger = factory.CreateLogger(); Sanitizer = new CommandSanitizer(); }