示例#1
0
        static Route CreateRoute(DependencyObject d)
        {
            var routeString = GetRoute(d);

            var action = routeString.Split(' ')[0];
            var resource = routeString.Split(' ')[1];

            var route = new Route(action, resource);

            var view = ViewProperties.GetView(d);
            route.AddParameter(KnownParameters.ParentView, view);
            var showAs = ViewProperties.GetShowAs(d);
            route.AddParameter(KnownParameters.ParentShowAs, showAs);

            var parameters = GetParams(d);

            if (parameters != null)
            {
                foreach (var p in parameters)
                {
                    var element = d as FrameworkElement;
                    p.DataContext = element.DataContext;
                    route.AddParameter(p.Key, p.Value);
                }
            }

            return route;
        }
示例#2
0
        public ViewRouteResult(IRoute route, object view, string showAs)
        {
            var result = route as IRouteResult ?? new RouteResult(route);
            CopyFrom(result);

            AddHistory(route);

            var nextRoute = new Route(route);
            nextRoute.AddParameter(KnownParameters.View, view);

            if (nextRoute.DoesNotContain(KnownParameters.ShowAs))
                nextRoute.AddParameter(KnownParameters.ShowAs, showAs);

            Next(nextRoute);
        }
示例#3
0
        public ViewModelRouteResult(IRoute route, object viewModel)
        {
            var result = route as IRouteResult ?? new RouteResult(route);
            CopyFrom(result);

            AddHistory(route);

            var nextRoute = new Route(route);
            nextRoute.AddParameter("ViewModel", viewModel);

            Next(nextRoute);
        }
        public ControllerRouteResult(IRoute route, object controller)
        {
            var result = route as IRouteResult ?? new RouteResult(route);
            CopyFrom(result);

            AddHistory(route);

            var nextRoute = new Route(route);
            nextRoute.AddParameter(KnownParameters.Controller, controller);

            Next(nextRoute);
        }
示例#5
0
        public IRouteResult Process(IRoute route)
        {
            var showAs = route.Parameters[KnownParameters.ParentShowAs].ToString();
            var view = route.Parameters[KnownParameters.ParentView];

            var next = new Route("close", showAs);
            next.AddParameter(KnownParameters.View, view);

            var result = new RouteResult(route);
            result.Next(next);

            return result;
        }
示例#6
0
        public IRouteResult Process(IRoute route)
        {
            var result = new RouteResult(route);

            var next = new Route("show", "errors")
                .CopyParameterFrom(route, KnownParameters.Errors);

            var view = route.Parameters[KnownParameters.ParentView];
            next.AddParameter(KnownParameters.View, view);

            result.Next(next);

            return result;
        }
        public static IRoute ToRoute(this string s)
        {
            var words = s.Split(' ');

            var action = words[0];
            var resource = words[1];

            var route = new Route(action, resource);

            var parameters = words.Skip(2);

            foreach(var parameterString in parameters)
            {
                var key = parameterString.Split(':')[0];
                var value = parameterString.Split(':')[1];
                value = value.Replace("\'", "");

                route.AddParameter(key, value);
            }

            return route;
        }