diff --git a/.hgsubstate b/.hgsubstate index 0e95f9da8..df13f715e 100644 --- a/.hgsubstate +++ b/.hgsubstate @@ -1,9 +1,9 @@ -668ae298714aa3b95f13d23676d286f201e0df04 src/Orchard.Web/Modules/Orchard.Alias -ed95d05246746a3689819176746760fff4fef633 src/Orchard.Web/Modules/Orchard.Autoroute +8e658d4d0ae81a537e582204d899bfcd265f977e src/Orchard.Web/Modules/Orchard.Alias +bce623c333ca90f0f815843c04c8d124f2c7b6d9 src/Orchard.Web/Modules/Orchard.Autoroute 67bf9897ee9dd9483369aece729ad7c6f042941c src/Orchard.Web/Modules/Orchard.Forms 6033664adc404a22f311029b69fbf1e34dc4ff2a src/Orchard.Web/Modules/Orchard.Projections a1ef39ba4e2d0cd78b3c91d6150e841793acb34b src/Orchard.Web/Modules/Orchard.Routable f2a3984789ebe5caf2822ccb9e1d2c953add9c35 src/Orchard.Web/Modules/Orchard.Rules ce578373f907c0a55fd91229a344f0755f290174 src/Orchard.Web/Modules/Orchard.TaskLease 42d34730d8bb22052585ca94e3e945111aea3b9d src/Orchard.Web/Modules/Orchard.Tokens -7fa9f5cc93bd4e9f88caef9f4060f4f65b3902b9 src/orchard.web/modules/Orchard.Fields +d52740a18e06e5aa2b01bef90363bcb230bd3fb8 src/orchard.web/modules/Orchard.Fields diff --git a/src/Orchard/Utility/Extensions/RouteValueDictionaryExtensions.cs b/src/Orchard/Utility/Extensions/RouteValueDictionaryExtensions.cs index 18e5ae14e..016ee0ddb 100644 --- a/src/Orchard/Utility/Extensions/RouteValueDictionaryExtensions.cs +++ b/src/Orchard/Utility/Extensions/RouteValueDictionaryExtensions.cs @@ -1,3 +1,5 @@ +using System; +using System.Linq; using System.Web.Routing; namespace Orchard.Utility.Extensions { @@ -17,5 +19,22 @@ namespace Orchard.Utility.Extensions { return newDictionary; } + + public static bool Compare(this RouteValueDictionary x, RouteValueDictionary y) { + if(x == y) { + return true; + } + + if(x == null || y == null) { + return false; + } + + if(x.Count != y.Count) { + return false; + } + + // keys can be different in case + return x.Keys.All(key => x[key].ToString().Equals(y[key].ToString(), StringComparison.OrdinalIgnoreCase)); + } } } \ No newline at end of file