Guides/MVC-Integration.md
... ...
@@ -158,9 +158,13 @@ The below is how the project's Global.asax should look like.
158 158
159 159
###Step 9. Copy specificFilerouter and IzendaResource constraint classes from Globa.asax.cs and paste them above MVCapplication class in Global.asax.cs of the project
160 160
161
-Copy specificFilerouter and IzendaResource constraint classes from Globa.asax.cs and paste them above MVCapplication class in Global.asax.cs of the project
161
+Copy specificFilerouter and IzendaResource constraint classes from Globa.asax.cs and paste them above MVCapplication class in Global.asax.cs of project
162 162
163
+
164
+Copy below two constraints from Globa.asax.cs of mvc5r3
163 165
```csharp
166
+
167
+//IRouteConstraint
164 168
public class SpecificFileRouterConstraint : IRouteConstraint {
165 169
private string extensionToBeRouted = null;
166 170
private string fileToBeRouted = null;
... ...
@@ -176,6 +180,11 @@ public class SpecificFileRouterConstraint : IRouteConstraint {
176 180
fileToBeRouted = fileName.ToLower();
177 181
}
178 182
}
183
+
184
+
185
+
186
+
187
+//IRouteConstraint
179 188
public class IzendaResourceConstraint : IRouteConstraint {
180 189
private string extensionToBeRouted = null;
181 190
... ...
@@ -234,6 +243,113 @@ public class IzendaResourceConstraint : IRouteConstraint {
234 243
```
235 244
236 245
246
+Below is the how the Global.asax.cs should look like
247
+```csharp
248
+
249
+namespace Sample_MVCApp
250
+{
251
+ public class SpecificFileRouterConstraint : IRouteConstraint
252
+ {
253
+ private string extensionToBeRouted = null;
254
+ private string fileToBeRouted = null;
255
+
256
+ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
257
+ {
258
+ return !String.IsNullOrEmpty(extensionToBeRouted) && !String.IsNullOrEmpty(fileToBeRouted) && values[extensionToBeRouted] != null && values[extensionToBeRouted].ToString().ToLower().Contains(fileToBeRouted);
259
+ }
260
+
261
+ public SpecificFileRouterConstraint() { }
262
+
263
+ public SpecificFileRouterConstraint(string extension, string fileName)
264
+ {
265
+ extensionToBeRouted = extension.ToLower();
266
+ fileToBeRouted = fileName.ToLower();
267
+ }
268
+ }
269
+
270
+ public class IzendaResourceConstraint : IRouteConstraint
271
+ {
272
+ private string extensionToBeRouted = null;
273
+
274
+ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
275
+ {
276
+ if (String.IsNullOrEmpty(extensionToBeRouted) || values[extensionToBeRouted] == null)
277
+ {
278
+ return false;
279
+ }
280
+ string requestUrl = values[extensionToBeRouted].ToString().ToLower();
281
+ bool result = false;
282
+ if (extensionToBeRouted == "js")
283
+ {
284
+ result = result || requestUrl.Contains("reportviewerfilters.js");
285
+ result = result || requestUrl.Contains("reportlist.js");
286
+ result = result || requestUrl.Contains("data-sources.js");
287
+ result = result || requestUrl.Contains("data-sources-preview.js");
288
+ result = result || requestUrl.Contains("charts.js");
289
+ result = result || requestUrl.Contains("datasources-search.js");
290
+ result = result || requestUrl.Contains("jquery-1.6.1.min.js");
291
+ result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.min.js");
292
+ result = result || requestUrl.Contains("elrte.full.js");
293
+ result = result || requestUrl.Contains("elrte.ru.js");
294
+ result = result || requestUrl.Contains("fieldproperties.js");
295
+ result = result || requestUrl.Contains("shrinkable-grid.js");
296
+ }
297
+ if (extensionToBeRouted == "css")
298
+ {
299
+ result = result || requestUrl.Contains("tabs.css");
300
+ result = result || requestUrl.Contains("report.css");
301
+ result = result || requestUrl.Contains("filters.css");
302
+ result = result || requestUrl.Contains("base.css");
303
+ result = result || requestUrl.Contains("report-list-modal.css");
304
+ result = result || requestUrl.Contains("data-sources.css");
305
+ result = result || requestUrl.Contains("charts.css");
306
+ result = result || requestUrl.Contains("jquery-ui-1.8.13.custom.css");
307
+ result = result || requestUrl.Contains("elrte.min.css");
308
+ result = result || requestUrl.Contains("elrte-inner.css");
309
+ result = result || requestUrl.Contains("shrinkable-grid.css");
310
+ }
311
+ if (extensionToBeRouted == "png")
312
+ {
313
+ result = result || requestUrl.Contains("elrtebg.png");
314
+ result = result || requestUrl.Contains("elrte-toolbar.png");
315
+ }
316
+ if (extensionToBeRouted == "gif")
317
+ {
318
+ result = result || requestUrl.Contains("elrte/images/pixel.gif");
319
+ }
320
+ return result;
321
+ }
322
+
323
+ public IzendaResourceConstraint() { }
324
+
325
+ public IzendaResourceConstraint(string extension)
326
+ {
327
+ extensionToBeRouted = extension.ToLower();
328
+ }
329
+ }
330
+
331
+
332
+
333
+ // Note: For instructions on enabling IIS6 or IIS7 classic mode,
334
+ // visit http://go.microsoft.com/?LinkId=9394801
335
+
336
+ public class MvcApplication : System.Web.HttpApplication
337
+ {
338
+ protected void Application_Start()
339
+ {
340
+ AreaRegistration.RegisterAllAreas();
341
+
342
+ WebApiConfig.Register(GlobalConfiguration.Configuration);
343
+ FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
344
+ RouteConfig.RegisterRoutes(RouteTable.Routes);
345
+ BundleConfig.RegisterBundles(BundleTable.Bundles);
346
+ AuthConfig.RegisterAuth();
347
+ }
348
+ }
349
+}
350
+
351
+
352
+```
237 353
238 354
239 355
###Step 10. Copy RegisterRoutes in MvcApplication class from Global.asax.cs and put it in MvcApplication class of the project’s Global.asax.cs