Ryan Nowak
49c2317c14
Fix #810
2018-09-24 21:55:56 -07:00
Ryan Nowak
7c16c92317
Fix a bug in GetUriByRouteValues
...
Pride cometh before the fall...
2018-09-24 20:46:20 -07:00
Ryan Nowak
b642db5a47
Revised LinkGenerator
2018-09-22 15:47:50 -07:00
James Newton-King
c559498632
Make parameter transformer test verifiable ( #804 )
2018-09-20 12:41:29 -07:00
Ryan Nowak
a657c3bdf2
Updates to Parameter Transformer
...
- Rename -> IOutboundParameterTransformer
- Make it operate on object
- Implementing caching for constraints/tranformers for link generation
(cached as part of TemplateBinder)
2018-09-20 10:15:42 -07:00
James Newton-King
85fa15419d
Fix merge ( #796 )
2018-09-15 08:17:53 +12:00
James Newton-King
412944e1f5
Transform parameters before lower casing in link generation ( #793 )
2018-09-14 17:19:43 +12:00
Ryan Nowak
426a48a65a
Performance improvments to LinkGenerator and TemplateBinder
2018-09-13 19:11:28 -07:00
Ryan Nowak
9a68f48a5c
Minor improvments to RVD perf
2018-09-13 14:55:00 -07:00
James Newton-King
cee960f3c5
Add IParameterTransformer ( #750 )
2018-09-12 21:45:25 +12:00
Ryan Nowak
5f172efa9d
Add support Endpoint Name endpoint finding
2018-09-10 16:50:46 -07:00
Ryan Nowak
57cc8aea96
Various improvments to route values link APIs
...
- Add docs
- Add support for templates
- Remove undesirable constructor parameter
- misc cleanup
2018-09-10 16:50:46 -07:00
Ryan Nowak
489a179c41
Add a test for Routing#435
...
This was already fixes as part of the LinkGenerator redesign. Adding a
test so we can mark it as complete.
2018-09-06 16:57:43 -07:00
Ryan Nowak
e3b704095b
Revisions to LinkGenerator ( #770 )
...
* Revisions to LinkGenerator
* PR feedback
2018-09-05 20:52:09 -07:00
Ikebe Shodai
950d2e9b74
Fix locale sensitive unit tests
2018-09-05 20:13:25 -07:00
James Newton-King
0f5d471dfd
Create collections on DfaNode as needed ( #779 )
2018-09-06 12:58:57 +12:00
Ryan Nowak
945e798ca7
[Design] Set the endpoint feature only on success
2018-08-30 14:52:35 -07:00
Ryan Nowak
8395ad8340
remove references to ref emit packages
2018-08-30 13:26:22 -07:00
James Newton-King
74bfff149e
Use var in for loops ( #758 )
2018-08-31 08:24:41 +12:00
Ryan Nowak
8d053853bb
Address PR feedback, I hit merge too soon.
2018-08-29 19:46:25 -07:00
Ryan Nowak
3511c8cef0
Add vectorized il-emit trie jump table
...
Add new futuristic jump table. Remove old experimental jump tables since
this is much much better.
2018-08-29 19:30:02 -07:00
James Newton-King
4e9e33a223
Unit test constraints without HttpContext ( #755 )
2018-08-29 17:34:54 +12:00
James Newton-King
99c4f2f36a
Support policy arguments and resolving services by constructors ( #753 )
2018-08-29 14:51:34 +12:00
James Newton-King
40fb13a021
Fix DfaMatcher to work with non-RouteEndpoint ( #739 )
2018-08-24 09:11:13 +12:00
James Newton-King
15e46ad323
Change RoutePattern to not throw when inline and arg default value are the same ( #747 )
2018-08-23 21:39:23 +12:00
Ryan Nowak
a0aa61fd10
Improvements for IEndpointSelectorPolicy
...
These changes are based on our discussion earlier this week. Adding
async, and making it possible to short circuit, which should be better
aligned with the requirments of versioning.
2018-08-22 19:26:13 -07:00
James Newton-King
1680b9f4fc
Change endpoint invoker to RequestDelegate, Endpoint/EndpointMetadataCollection namespaces, split out IRouteValuesFeature ( #712 )
2018-08-22 17:15:57 +12:00
James Newton-King
08a0a7fadb
Remove MatchProcessor, add IParameterPolicy ( #734 )
2018-08-22 15:24:34 +12:00
Kiran Challa
731767837a
Introducing new **catchAll parameter to allow generating links with unencoded values
2018-08-16 15:52:09 -07:00
Ryan Nowak
730646c301
Perf for EMC
2018-08-15 22:08:58 -07:00
Ryan Nowak
4fa0b068b8
Fix #710 - add support for data tokens
2018-08-15 21:43:50 -07:00
Ryan Nowak
97f54c532b
Support supression of matching for endpoints
2018-08-15 21:36:08 -07:00
Kiran Challa
4d706f045f
rebase changes
2018-08-03 12:45:31 -07:00
Kiran Challa
09ce9c3041
Api clean up
2018-08-03 12:37:37 -07:00
James Newton-King
091cb94094
Change metadata namespace
...
Change EndpointOptions visibility to internal
Add IRequiredValuesMetadata
2018-08-03 12:37:37 -07:00
Kiran Challa
c8946a40e4
Created LinkGenerationTemplate and friends
2018-08-03 12:33:34 -07:00
Kiran Challa
b177ba5309
Changed api of LinkGenerator
2018-08-02 16:10:56 -07:00
James Newton-King
8c4f187c22
Endpoint routing rename and API review changes ( #684 )
2018-08-02 13:38:08 +12:00
Kiran Challa
85c7bd8fac
Discard ambient values during link generation if the values do not match explicit values
...
[Fixes #544 ] Link generation: Discard ambient values unless routing to the same address
2018-07-31 14:50:04 -07:00
Ryan Nowak
f8b3b73ca7
Remove EndpointConstraints
...
Adds IEndpointSelectorPolicy so that MVC can plug in to the
EndpointSelector to run action constraints.
2018-07-28 19:03:12 -07:00
Ryan Nowak
54e5370e8f
Add CORS support to HttpMethodMatcherPolicy
...
Also removes HttpMethodEndpointConstraint, since it's been fully
replaced.
2018-07-26 23:01:11 -07:00
James Newton-King
c68c5befc7
Remove ChangeToken from EndpointDataSource ( #662 )
2018-07-26 11:06:54 +12:00
James Newton-King
fdff66054f
Missing ChangeToken -> GetChangeToken updates ( #660 )
2018-07-25 14:35:41 +12:00
Ryan Nowak
147c9527f3
Implement EndpointSelector and MatcherPolicy ( #646 )
...
Implement EndpointSelector and MatcherPolicy
This change makes the EndpointSelector API more concrete, and is the
beggining of removing EndpointConstraint by making it obsolete.
To that end, I'm introducing MatcherPolicy, which is a
feature-collection API for registering policies that interact with the
DfaMatcher. The two policies that we'll need to start are:
- ability to order endpoints
- ability to append 'policy' nodes to the graph
These two concepts together replace EndpointConstraint. Extending our
graph representation is a really efficient way to processing most common
scenarios.
---
In general this helps with common cases where 4 or so endpoints match
the URL, but with different HTTP methods supported on each. Today we
have to process route values and call into some 'policy' to make a
decision about which one is the winner. This change pushes this
knowledge down into the graph so that it's roughly as cheap as a
dictionary lookup, and can be done allocation-free.
The big savings here is ability to remove more candidates *before*
collecting route data.
---
Along with this change, I also built 'rejection' into the DFA node
model, you can see an example with the HTTP Method handling that I
implemented. I implemented a policy that can treat failure to resolve an
HTTP method as a 405 response by returning a failure endpoint. This is
at the heart of much of the feedback we've gotten in this area around
versioning and http method handling. We also have a version of this
feature in MVC for [Consumes].
2018-07-24 17:31:51 -07:00
Kiran Challa
71cb933a08
Show a flattened tree in LinkGenerationDecisionTree's DebuggerDisplayString
...
[Fixes #636 ] Flatten the LinkGenerationDecisionTree to show as debugger display string
2018-07-24 17:11:53 -07:00
Kiran Challa
34499dbe24
Added support for suppressing link generation for endpoints
2018-07-24 16:47:34 -07:00
Nate McMaster
deddb336b7
Merge branch 'release/2.1' into release/2.2
2018-07-24 11:47:18 -07:00
Kiran Challa
7da1baf9d8
Do not use decision tree for named routes in RouteValuesBasedEndpointFinder
2018-07-24 05:33:19 -07:00
Kiran Challa
5f1631ab46
Added support for configuring route options with LinkGenerator
2018-07-24 04:45:33 -07:00
James Newton-King
1e807240ea
Add GetChangeToken to EndpointDataSource ( #649 )
2018-07-23 13:46:22 +12:00