public void OnActionExecuting(ActionExecutingContext filterContext) { IDictionary<string, object> values = filterContext.RouteData.Values; string cultureName = null; CultureHelper.SetCulture(values, ref cultureName); filterContext.Controller.ViewBag.CurrentCulture = cultureName; UnityServiceLocator serviceLocator = new UnityServiceLocator(UnityConfig.GetConfiguredContainer()); ICultureService cultureService = serviceLocator.GetInstance<ICultureService>(); filterContext.Controller.ViewBag.Cultures = cultureService.GetList(); serviceLocator = new UnityServiceLocator(UnityConfig.GetConfiguredContainer()); JsResourceHelper jsResourceHelper = serviceLocator.GetInstance<JsResourceHelper>(); jsResourceHelper.Set(); }
public static void RegisterRoutes(RouteCollection routes, ICultureService cultureService) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); IReadOnlyList <string> cultures = cultureService.GetList(); routes.MapRoute( name: "Lang", url: "{lang}/{controller}/{action}/{id}", defaults: new { controller = "AngularTemplate", action = "Index", id = UrlParameter.Optional }, constraints: new { lang = String.Join("|", cultures) } ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "AngularTemplate", action = "Index", id = UrlParameter.Optional, lang = cultures[0] } ); }
// Web API configuration and services public static void Register(HttpConfiguration config) { //Unity configuration for Web API controllers var container = UnityConfig.GetConfiguredContainer(); config.DependencyResolver = new UnityResolver(container); UnityServiceLocator serviceLocator = new UnityServiceLocator(container); ICultureService cultureService = serviceLocator.GetInstance <ICultureService>(); IReadOnlyList <string> cultures = cultureService.GetList(); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "LangApi", routeTemplate: "api/{lang}/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional }, constraints: new { lang = String.Join("|", cultures) } ); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional, lang = cultures[0] } ); config.Routes.MapHttpRoute( name: "UploadFileApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType); }