public void OnBeforeAction(object actionDescriptor, HttpContext httpContext, IRouteData routeData)
        {
            var startDateTime         = DateTime.UtcNow;
            var typedActionDescriptor = ConvertActionDescriptor(actionDescriptor);

            var message = new BeforeActionMessage
            {
                ActionId             = typedActionDescriptor.Id,
                ActionDisplayName    = typedActionDescriptor.DisplayName,
                ActionName           = typedActionDescriptor.ActionName,
                ActionControllerName = typedActionDescriptor.ControllerName,
                ActionStartTime      = startDateTime,
                RouteData            = routeData.Values?.ToDictionary(x => x.Key, x => x.Value?.ToString())
            };

            // NOTE: Template data is only available in the TemplateRoute, so we need to try and
            //       promote that type into something we can use
            var router = routeData.Routers[routeData.Routers.Count - 2];

            if (router.GetType().FullName == "Microsoft.AspNetCore.Routing.Route")
            {
                var templateRoute = _proxyAdapter.Process <IRouter>("Microsoft.AspNetCore.Routing.Route", router);

                message.RouteName          = templateRoute.Name;
                message.RoutePattern       = templateRoute.RouteTemplate;
                message.RouteConfiguration = templateRoute.ParsedTemplate?.Parameters?.ToDictionary(x => x.Name,
                                                                                                    x => new RouteConfigurationData {
                    Default = x.DefaultValue?.ToString(), Optional = x.IsOptional
                });
            }

            _broker.BeginLogicalOperation(message, startDateTime);
            _broker.SendMessage(message);
        }
        public void OnBeforeAction(object actionDescriptor, HttpContext httpContext, IRouteData routeData)
        {
            var startDateTime = DateTime.UtcNow;
            var typedActionDescriptor = ConvertActionDescriptor(actionDescriptor);

            var message = new BeforeActionMessage
            {
                ActionId = typedActionDescriptor.Id,
                ActionDisplayName = typedActionDescriptor.DisplayName,
                ActionName = typedActionDescriptor.Name,
                ActionControllerName = typedActionDescriptor.ControllerName,
                ActionStartTime = startDateTime,
                RouteData = routeData.Values?.ToDictionary(x => x.Key, x => x.Value?.ToString())
            };

            // NOTE: Template data is only available in the TemplateRoute, so we need to try and 
            //       promote that type into something we can use
            var router = routeData.Routers[routeData.Routers.Count - 2];
            if (router.GetType().FullName == "Microsoft.AspNet.Routing.Template.TemplateRoute")
            {
                var templateRoute = _proxyAdapter.Process<IRouter>("Microsoft.AspNet.Routing.Template.TemplateRoute", router);
                
                message.RouteName = templateRoute.Name;
                message.RoutePattern = templateRoute.RouteTemplate;
                message.RouteConfiguration = templateRoute.ParsedTemplate?.Parameters?.ToDictionary(x => x.Name,
                    x => new RouteConfigurationData { Default = x.DefaultValue?.ToString(), Optional = x.IsOptional });
            }

            _broker.BeginLogicalOperation(message, startDateTime);
            _broker.SendMessage(message);
        }
        private string GetNameFromRouteContext(IRouteData routeData)
        {
            string name = null;

            if (routeData.Values.Count > 0)
            {
                var routeValues = routeData.Values;

                object controller;
                routeValues.TryGetValue("controller", out controller);
                string controllerString = (controller == null) ? string.Empty : controller.ToString();

                if (!string.IsNullOrEmpty(controllerString))
                {
                    name = controllerString;

                    object action;
                    routeValues.TryGetValue("action", out action);
                    string actionString = (action == null) ? string.Empty : action.ToString();

                    if (!string.IsNullOrEmpty(actionString))
                    {
                        name += "/" + actionString;
                    }

                    if (routeValues.Keys.Count > 2)
                    {
                        // Add parameters
                        var sortedKeys = routeValues.Keys
                                         .Where(key =>
                                                !string.Equals(key, "controller", StringComparison.OrdinalIgnoreCase) &&
                                                !string.Equals(key, "action", StringComparison.OrdinalIgnoreCase) &&
                                                !string.Equals(key, "!__route_group", StringComparison.OrdinalIgnoreCase))
                                         .OrderBy(key => key, StringComparer.OrdinalIgnoreCase)
                                         .ToArray();

                        if (sortedKeys.Length > 0)
                        {
                            string arguments = string.Join(@"/", sortedKeys);
                            name += " [" + arguments + "]";
                        }
                    }
                }
                else
                {
                    object page;
                    routeValues.TryGetValue("page", out page);
                    string pageString = (page == null) ? string.Empty : page.ToString();
                    if (!string.IsNullOrEmpty(pageString))
                    {
                        name = pageString;
                    }
                }
            }

            return(name);
        }
 public AreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(areaRouteData.Controller, areaRouteData.Action)
 {
     _pageContext = pageContext;
     _routeData = routeData;
     _viewContextProvider = viewContextProvider;
     Area = areaRouteData.Area;
     UseChildActionBehavior = areaRouteData.UseChildActionBehavior;
 }
Esempio n. 5
0
 public AreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(areaRouteData.Controller, areaRouteData.Action)
 {
     _pageContext         = pageContext;
     _routeData           = routeData;
     _viewContextProvider = viewContextProvider;
     Area = areaRouteData.Area;
     UseChildActionBehavior = areaRouteData.UseChildActionBehavior;
 }
Esempio n. 6
0
        public Task ExecuteAsync(IOwinContext context, IRouteData routeData)
        {
            var requestContext = new RequestContext(context, routeData);

            IActionInvokerFactory invokerFactory = _serviceProvider.GetService <IActionInvokerFactory>();

            var invoker = invokerFactory.CreateInvoker(requestContext);

            return(invoker.InvokeActionAsync());
        }
Esempio n. 7
0
        public Task ExecuteAsync(IOwinContext context, IRouteData routeData)
        {
            var requestContext = new RequestContext(context, routeData);

            IActionInvokerFactory invokerFactory = _serviceProvider.GetService<IActionInvokerFactory>();

            var invoker = invokerFactory.CreateInvoker(requestContext);

            return invoker.InvokeActionAsync();
        }
Esempio n. 8
0
 public virtual void OnActionSelected(
     IHttpContext httpContext,
     IRouteData routeData,
     IActionDescriptor actionDescriptor)
 {
     ActionSelected = new OnActionSelectedEventData()
     {
         ActionDescriptor = actionDescriptor,
         HttpContext      = httpContext,
         RouteData        = routeData,
     };
 }
 public virtual void OnActionSelected(
     IHttpContext httpContext,
     IRouteData routeData,
     IActionDescriptor actionDescriptor)
 {
     ActionSelected = new OnActionSelectedEventData()
     {
         ActionDescriptor = actionDescriptor,
         HttpContext = httpContext,
         RouteData = routeData,
     };
 }
        public void GlobalSetupGetPoint()
        {
            _routeDataMock = new Mock <IRouteData>();

            SetupData();

            _routeData = _routeDataMock.Object;

            _deliveryController = new DeliveryController(
                new GetRouteByPointOriginAndDestinationQuery(_routeData),
                new GetBestTimeByPointOriginAndDestinationQuery(_routeData),
                new GetBestCostByPointOriginAndDestinationQuery(_routeData));
        }
Esempio n. 11
0
        public RequestContext(IOwinContext context, IRouteData routeData)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (routeData == null)
            {
                throw new ArgumentNullException("routeData");
            }

            HttpContext = context;
            RouteData = routeData;
        }
Esempio n. 12
0
        public void OnBeforeAction(HttpContext httpContext, IRouteData routeData)
        {
            var telemetry = httpContext.Features.Get <RequestTelemetry>();

            if (telemetry != null && string.IsNullOrEmpty(telemetry.Name))
            {
                string name = this.GetNameFromRouteContext(routeData);

                if (!string.IsNullOrEmpty(name))
                {
                    name           = httpContext.Request.Method + " " + name;
                    telemetry.Name = name;
                }
            }
        }
Esempio n. 13
0
        public RequestContext(IOwinContext context, IRouteData routeData)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (routeData == null)
            {
                throw new ArgumentNullException("routeData");
            }

            HttpContext = context;
            RouteData   = routeData;
        }
        public void GlobalSetupGetUser()
        {
            _routeDataMock = new Mock <IRouteData>();
            _pointDataMock = new Mock <IPointData>();

            _routeBase = routesData(_routeCode);

            _routeData = _routeDataMock.Object;
            _pointData = _pointDataMock.Object;

            _routesController = new RoutesController(
                new GetRoutesByFromPointCodeQuery(_routeData),
                new SaveRouteCommand(_routeData),
                new UpdateRouteCommand(_routeData),
                new DeleteRouteCommand(_routeData));
        }
Esempio n. 15
0
        public void GlobalSetupGetPoint()
        {
            _pointDataMock = new Mock <IPointData>();
            _routeDataMock = new Mock <IRouteData>();

            _pointBase = PointsData(_pointCode);

            _pointData = _pointDataMock.Object;
            _routeData = _routeDataMock.Object;

            _pointsController = new PointsController(
                new GetPointByCodeQuery(_pointData),
                new SavePointCommand(_pointData),
                new UpdatePointCommand(_pointData),
                new DeletePointCommand(_pointData, _routeData));
        }
        public IRouteData GetData(string uri, string method, Func<RouteData> factory)
        {
            if (string.IsNullOrEmpty(this.Uri) && string.IsNullOrEmpty(this.Method))
            {
                this.Uri = uri;
                this.Method = method;
            }

            if (this.Method != method || this.Uri != uri)
            {
                throw new InvalidOperationException("Attempted to use a routedata provider that had already been evaluated for a different url or method");
            }

            if (this.data == null)
            {
                this.data = this.routeWalker.WalkRoute(this.Uri, this.Method, factory());
            }

            return this.data;
        }
Esempio n. 17
0
 public static IRouter CreateData(IRouteData <IRenderingController> routeData)
 {
     return(new TempRouter(routeData));
 }
Esempio n. 18
0
 public OwinRouteDataProvider(IRouteData data)
 {
     this.data = data;
 }
 public DeleteRouteCommand(IRouteData routeData)
 {
     _routeData = routeData;
 }
Esempio n. 20
0
 public ViewContext(IOwinContext context, IRouteData routeData, ViewData viewData) :
     base(context, routeData)
 {
     ViewData = viewData;
 }
Esempio n. 21
0
 public IRouteData GetData(IDictionary <string, object> environment, Func <RouteData> factory)
 {
     return(this.data ?? (this.data = this.routeWalker.WalkRoute(environment, factory())));
 }
 public WebApiRouteDataAdapter(IRouteData routeData)
 {
     this.routeData = routeData;
 }
 public TestAreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(pageContext, routeData, viewContextProvider, areaRouteData)
 {
 }
Esempio n. 24
0
 public ViewContext(IOwinContext context, IRouteData routeData, ViewData viewData)
     : base(context, routeData)
 {
     ViewData = viewData;
 }
Esempio n. 25
0
 public TempRouter(IRouteData <IRenderingController> routeData)
 {
     this.routeData    = routeData;
     this.otherKlazzez = new IClass <INonRenderingController> [0];
 }
 public IRouteData GetData(IDictionary<string, object> environment, Func<RouteData> factory)
 {
     return this.data ?? (this.data = this.routeWalker.WalkRoute(environment, factory()));
 }
 public OwinRouteDataProvider(IRouteData data)
 {
     this.data = data;
 }
Esempio n. 28
0
 public GetRouteByPointOriginAndDestinationQuery(IRouteData routeData)
 {
     _routeData = routeData;
 }
Esempio n. 29
0
 public WebApiRouteDataAdapter(IRouteData routeData)
 {
     this.routeData = routeData;
 }
 public SaveRouteCommand(IRouteData routeData)
 {
     _routeData = routeData;
 }
Esempio n. 31
0
 public DeletePointCommand(IPointData pointData, IRouteData routeData)
 {
     _pointData = pointData;
     _routeData = routeData;
 }
 public UpdateRouteCommand(IRouteData routeData)
 {
     _routeData = routeData;
 }
Esempio n. 33
0
 public RouteManager()
 {
     this.routeData  = dataFactory.CreateRouteData();
     this.backupData = dataFactory.CreateBackupData();
 }
 public TestAreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(pageContext, routeData, viewContextProvider, areaRouteData)
 {
 }
Esempio n. 35
0
 public GetRoutesByFromPointCodeQuery(IRouteData routeData)
 {
     _routeData = routeData;
 }