Commit Graph

169 Commits

Author SHA1 Message Date
Ryan Nowak 27d6a735af Implement a 'required' constraint
This is useful for a variety of interesting scenarios in link generation
where a default value doesn't appear in the route template as a parameter.

This can be used to implement the desired behavior for areas - where the
'area' key is sticky.
2014-07-08 16:23:14 -07:00
Ryan Nowak 63dcdd6ca5 Fix for #77 - pass ambient values not in the template to constraints
This change adds tests and makes the behavior consistent with legacy MVC
as far as what values are visible in constraints.

This is important because it allows constraints to make decisions based on
whether or not a value is present even if it's not in the template. This
is similar to the behavior of WebAPI link generation or Area link
generation in MVC 5 - but without hardcoding.
2014-07-08 10:18:00 -07:00
tugberkugurlu c6eff50c24 directly return inside the BuilderExtensions.UseRouter method 2014-07-01 10:03:52 +03:00
Brice Lambson a0a0db9856 Bump version to 1.0.0-* 2014-06-19 16:46:05 -07:00
harshgMSFT cef4a3ec05 Removing dictionary overloads from MapRoute. 2014-06-19 14:38:08 -07:00
harshgMSFT fbffcb7b40 Adding Remaining Inline Route Constraints. 2014-06-18 16:29:49 -07:00
harshgMSFT 0ca5576926 StyleCop Fixes for routing. 2014-06-16 11:18:01 -07:00
Pranav K a1fe088d3a Removing RouteContext.RequestPath and calculating it from HttpContext as needed. 2014-06-09 11:18:49 -07:00
harshgMSFT a499d4a92a Routing DI Changes II : Adding services for routing. 2014-06-06 17:08:01 -07:00
Ryan Nowak 28b89c8fe5 Changing to list 2014-06-06 10:16:47 -07:00
Ryan Nowak d10682d15b Issue aspnet/Mvc#56 - merging RouteContext and RequestContext
This is the routing part of these changes, and just the breaking changes
parts.

Follow-ups will add:
- DataTokens
- Tracking the logical stack of routers
2014-06-06 10:11:57 -07:00
Ryan Nowak 1d4ceef81b Turning on warnings as errors for routing 2014-06-04 18:42:41 -07:00
Ryan Nowak 4a51ced5de Fix project file 2014-06-04 13:02:37 -07:00
harshgMSFT 1d3e41560c Routing DI Changes I:
Moving out Default Handler and IInlineConstraintResolver from RouteCollection.
	These are moved to a new interface IRouteBuilder, (instead of an IInlineConstraintResolver, it takes in an IServiceProvider).
	This means all RouteCollectionExtensions are moved to RouteBuilderExtensions.
2014-06-03 16:50:48 -07:00
Ryan Nowak 5616ce0bfa Fix for #36 - IBuilder extension methods should take IRouter 2014-05-30 15:57:40 -07:00
harshgMSFT 5dc8267920 Adding Tests for InlineRouting Support. 2014-05-30 12:56:04 -07:00
harshgMSFT 2e96ba5862 Updating Class and file names according to PR feedback. 2014-05-30 12:40:42 -07:00
harshgMSFT ff3f011ca8 Responding to comments 2014-05-30 12:40:25 -07:00
harshgMSFT 9885830200 Support for InlineConstraints in Route Template 2014-05-30 12:39:25 -07:00
harshgMSFT 187d8e4911 Support for InlineConstraints in Route Template 2014-05-30 12:28:14 -07:00
David Fowler bde341caed Fixed project.json casing 2014-05-26 02:51:56 -07:00
Pranav K d8da964e88 Updating kproj file to match tooling changes 2014-05-18 20:13:56 -07:00
Andrew Peters feb150570a Updating copyright headers 2014-05-08 23:01:29 -07:00
Wei Wang 96568362ea Sort dependencies and remove duplicates in dependencies 2014-05-07 17:47:44 -07:00
Chris Ross 7a855ba626 Remove unused DI dependency. 2014-05-06 11:25:54 -07:00
David Fowler b0dc6c95f8 React to more renames 2014-05-06 00:22:55 -07:00
Ryan Nowak 8fcddc12e7 Incorporate name changes 2014-05-05 16:54:45 -07:00
Ryan Nowak dfd4ba4b1b Fixing routing for package changes in reflection 2014-05-05 10:24:29 -07:00
anpete 51317a7039 Update file headers 2014-05-01 17:41:33 -07:00
harshgMSFT 950ce56ea5 Adding Support for NamedRoutes.
- Interface Changes.
- RouteCollectionExtensions
- Tests for Named Routes
2014-04-30 11:23:54 -07:00
David Fowler f86877b14f Move BuilderExtensions and RouterMiddleware to Microsoft.AspNet 2014-04-18 00:22:27 -07:00
Ryan Nowak 06c63c38a1 Fix for #32 and #33 - return IBuilder from UseRouter
Also removing the overload that doesn't take a route collection
2014-04-16 20:01:35 -07:00
David Fowler 23c11bc950 Updated to use the new tooling 2014-04-08 01:37:06 -07:00
Ryan Nowak 87a47f50cc Passing more data to on GetVirtualPath
For link generation to areas, we need to provide the set of values that
the route could potentially provide.

Basically if we know what action we want to reach, we want to know whether
or not a given route could hit that action before giving it the OK to
generate a link.

For instance a route like '{controller}' couldn't hit an action like
'HomeController:DoACoolThing', since it can never provide a value for
'action'. This makes it possible for WebFX to make the right decision
without changing the behavior of any of the routing constructs. This also
has the side-effect of removing a class of order dependencies in routing
that cause bad links to be generated.
2014-03-31 12:05:47 -07:00
Yishai Galatzer cd0528b1b2 Link generation related tests 2014-03-31 09:31:49 -07:00
Yishai Galatzer 77ef7a5cde RouteConstraints Step II + III
Include Url Generation support
Add unit tests
Clean issues found by unit tests
2014-03-31 09:31:48 -07:00
David Fowler 2b87a625d9 Updated clr packages 2014-03-29 01:15:28 -07:00
Pranav K 6ff5ebafd2 Updating CoreCLR package versions 2014-03-27 17:30:36 -07:00
Yishai Galatzer db7b36a859 Fix merge errors 2014-03-27 11:01:04 -07:00
Yishai Galatzer 70e26a80ad CR Feedback 2014-03-27 10:58:15 -07:00
Yishai Galatzer a917cbd577 Constraints 2014-03-27 10:58:14 -07:00
Ryan Nowak cf16d6cba7 Small refactor of TemplateBinder
We'll need to access the accepted values to do proper link generation, so
separating this process out into 2 parts.

Also moving defaults into the TemplateBinder because they are conceptually
part of the route, not part of the request. I'll do the same for
TemplateMatcher soon, but it's a big change and worth separating.
2014-03-26 18:44:57 -07:00
Ryan Nowak ea8f19f186 CR feedback 2014-03-11 11:20:33 -07:00
Ryan Nowak 6a309f20d8 Passing route collection through the context - for MVC to get access to it. 2014-03-10 10:12:19 -07:00
Ryan Nowak da057820e5 Rename BindPath (CR Feedback) 2014-03-10 10:02:57 -07:00
David Fowler f5a43708ee Added references to required K packages 2014-03-07 02:28:46 -08:00
Ryan Nowak 83eb6c4d22 Small bugfix in routing 2014-03-06 16:23:48 -08:00
Ryan Nowak f604fb8d87 CR feedback again 2014-03-06 12:18:31 -08:00
Ryan Nowak f43985b58d CR feedback 2014-03-06 11:27:37 -08:00
Ryan Nowak d2a3bd3490 CR feedback 2014-03-05 20:41:22 -08:00
Ryan Nowak 5d34a61bd9 API changes for Routing 2014-03-05 16:48:10 -08:00
Ryan Nowak cd73fac433 Adding API for consuming url generation 2014-03-05 13:28:44 -08:00
Ryan Nowak 89eb6e6445 Some extra resiliance and tests! Oh glorious tests. 2014-03-05 11:27:06 -08:00
Ryan Nowak bdd4513b88 Adding object-dictionary support for defaults 2014-03-05 11:27:04 -08:00
Ryan Nowak 4022e5a5a4 Code dump of algorthmic code for url generation
This doesn't yet expose url generation via public api, that will come in
the next change.
2014-02-28 12:47:42 -08:00
Ryan Nowak 4f71137cbd CR feedback 2014-02-24 13:01:08 -08:00
Ryan Nowak 64c29fe813 Adding optional parameters 2014-02-19 12:02:02 -08:00
Ryan Nowak 42ce8c6594 Adding routebuilder 2014-02-11 12:21:40 -08:00
Ryan Nowak 5ee991cf61 CR feedback 2014-02-11 11:55:02 -08:00
Ryan Nowak 179841743e updating OM of routing, about 10% better perf 2014-02-07 18:28:54 -08:00
Ryan Nowak 85225055b9 removing datatokens/constraints/url-generation 2014-02-07 18:28:53 -08:00
Ryan Nowak d4904e8701 Adding legacy rounting code - mostly unmodified to get it into history 2014-02-07 18:28:51 -08:00
Ryan Nowak 0eb5ff0b87 integrating abstractions with routing 2014-02-04 12:39:19 -08:00
Ryan Nowak c796188231 integrating abstractions with routing 2014-02-03 15:56:44 -08:00
Ryan Nowak 84f4a2d047 Initial mock up of key interfaces for routing.
This is heavily based right now on raw Owin as the request/response model
since that will work for building samples/tests, and doesn't require
ifdefs in the code for k10. Once it's feasible, I'll port this to use the
Microsoft.AspNet.Abstractions types.

The sample here includes some basic route/endpoint implementations just to
prove that the route engine works in naive scenarios. These might live on
in the future in some form, but for now it's just part of the sample.

The next step is to integrate this with WebFX and start developing the
integration/configuration story for WebFX.
2014-01-30 11:08:19 -08:00
Ryan Nowak 9f9f92d18a Adding skeleton sample and test project 2014-01-30 11:07:52 -08:00
Ryan Nowak c0660f347a Revert "Getting routing prototype into history"
We're not using the prototype as a base, just want to to be in the history
so we can easily refer to it.

This reverts commit 4183bc98be.
2014-01-28 14:26:58 -08:00
Ryan Nowak 4183bc98be Getting routing prototype into history 2014-01-28 14:25:49 -08:00
Ryan Nowak 876cfaeb57 checkin of project structure 2014-01-28 09:13:56 -08:00