/// <summary> /// Initializes a new instance of the <see cref="UriTemplateRouteResolver"/> class. /// </summary> /// <param name="inner">The inner.</param> /// <param name="moduleCatalog">The module catalog.</param> /// <param name="builder">The builder.</param> /// <param name="environment">The environment.</param> public UriTemplateRouteResolver(DefaultRouteResolver inner, INancyModuleCatalog moduleCatalog, INancyModuleBuilder builder, INancyEnvironment environment) { this.inner = inner; this.moduleCatalog = moduleCatalog; this.builder = builder; this.globalizationConfiguraton = environment.GetValue <GlobalizationConfiguration>(); }
public AlreadyKnownRouteResolver(INancyEnvironment environment, nancyrouting.Route route, INancyModule module, nancyrouting.Trie.MatchResult matchResult) { _globalizationConfiguraton = environment.GetValue <GlobalizationConfiguration>(); _route = route; _module = module; _matchResult = matchResult; }
public void Validation_should_return_true_if_valid_culture_name(string cultureName) { //Given/When var configuration = new GlobalizationConfiguration(new[] { cultureName }, cultureName); var result = BuiltInCultureConventions.IsValidCultureInfoName(cultureName, configuration); //Then result.ShouldBeTrue(); }
/// <summary> /// Validates culture name /// </summary> /// <param name="name">Culture name eg\en-GB</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>True/False if valid culture</returns> public static bool IsValidCultureInfoName(string name, GlobalizationConfiguration configuration) { if (string.IsNullOrWhiteSpace(name)) { return(false); } return(configuration.SupportedCultureNames.Contains(name)); }
/// <summary> /// Creates an instance of <see cref="JavaScriptSerializer"/> /// </summary> /// <param name="jsonConfiguration">A <see cref="JsonConfiguration"/> object to configure the serializer</param> /// <param name="registerConverters">A boolean to determine whether to register custom converters</param> /// <param name="globalizationConfiguration">A <see cref="GlobalizationConfiguration"/> object to configure the serializer</param> public JavaScriptSerializer(JsonConfiguration jsonConfiguration, bool registerConverters, GlobalizationConfiguration globalizationConfiguration) : this(jsonConfiguration, globalizationConfiguration) { this.jsonConfiguration = jsonConfiguration; this.globalizationConfiguration = globalizationConfiguration; if (registerConverters) { this.RegisterConverters(jsonConfiguration.Converters, jsonConfiguration.PrimitiveConverters); } }
public void Validation_should_return_false_if_invalid_culture_name(string cultureName) { //Given/When var configuration = new GlobalizationConfiguration(Enumerable.Empty <string>()); var result = BuiltInCultureConventions.IsValidCultureInfoName(cultureName, configuration); //Then result.ShouldBeFalse(); }
/// <summary> /// Initializes a new instance of the <see cref="DefaultRouteResolver"/> class, using /// the provided <paramref name="catalog"/>, <paramref name="moduleBuilder"/>, /// <paramref name="routeCache"/> and <paramref name="trie"/>. /// </summary> /// <param name="catalog">An <see cref="INancyModuleCatalog"/> instance.</param> /// <param name="moduleBuilder">An <see cref="INancyModuleBuilder"/> instance.</param> /// <param name="routeCache">An <see cref="IRouteCache"/> instance.</param> /// <param name="trie">An <see cref="IRouteResolverTrie"/> instance.</param> /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param> public DefaultRouteResolver(INancyModuleCatalog catalog, INancyModuleBuilder moduleBuilder, IRouteCache routeCache, IRouteResolverTrie trie, INancyEnvironment environment) { this.catalog = catalog; this.moduleBuilder = moduleBuilder; this.routeCache = routeCache; this.trie = trie; this.configuration = new Lazy <RouteConfiguration>(environment.GetValue <RouteConfiguration>); this.globalizationConfiguraton = environment.GetValue <GlobalizationConfiguration>(); this.BuildTrie(); }
/// <summary> /// Initializes a new instance of the <see cref="DefaultRouteResolver"/> class, using /// the provided <paramref name="catalog"/>, <paramref name="moduleBuilder"/>, /// <paramref name="routeCache"/> and <paramref name="trie"/>. /// </summary> /// <param name="catalog">An <see cref="INancyModuleCatalog"/> instance.</param> /// <param name="moduleBuilder">An <see cref="INancyModuleBuilder"/> instance.</param> /// <param name="routeCache">An <see cref="IRouteCache"/> instance.</param> /// <param name="trie">An <see cref="IRouteResolverTrie"/> instance.</param> /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param> public DefaultRouteResolver(INancyModuleCatalog catalog, INancyModuleBuilder moduleBuilder, IRouteCache routeCache, IRouteResolverTrie trie, INancyEnvironment environment) { this.catalog = catalog; this.moduleBuilder = moduleBuilder; this.routeCache = routeCache; this.trie = trie; this.configuration = new Lazy<RouteConfiguration>(environment.GetValue<RouteConfiguration>); this.globalizationConfiguraton = environment.GetValue<GlobalizationConfiguration>(); this.BuildTrie(); }
/// <summary> /// Checks to see if the Session has a CurrentCulture key /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Session otherwise null</returns> public static CultureInfo SessionCulture(NancyContext context, GlobalizationConfiguration configuration) { var sessionType = context.Request.Session as NullSessionProvider; if (sessionType == null && context.Request.Session["CurrentCulture"] != null) { return((CultureInfo)context.Request.Session["CurrentCulture"]); } return(null); }
public void Should_assume_local_time_when_globalizationconfiguration_datetimestyles_requires_it() { // Given var expected = DateTime.Now; var config = new GlobalizationConfiguration(new[] { "en-US" }, dateTimeStyles: DateTimeStyles.AssumeLocal); var value = new DynamicDictionaryValue(expected.ToString("O"), config); // When DateTime actual = value; // Then actual.ShouldEqual(expected); }
public void Should_adjust_to_universal_time_when_globalizationconfiguration_datetimestyles_requires_it() { // Given var expected = new DateTime(2016, 05, 24, 08, 41, 37, DateTimeKind.Utc); var config = new GlobalizationConfiguration(new [] { "en-US" }, dateTimeStyles: DateTimeStyles.AdjustToUniversal); var value = new DynamicDictionaryValue("2016-05-24T10:41:37+02:00", config); // When DateTime actual = value; // Then actual.ShouldEqual(expected); }
/// <summary> /// Checks to see if the AcceptLanguage in the Headers can be used to make a CultureInfo. Uses highest weighted if multiple defined. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Headers otherwise null</returns> public static CultureInfo HeaderCulture(NancyContext context, GlobalizationConfiguration configuration) { if (context.Request.Headers.AcceptLanguage.Any()) { var cultureLetters = context.Request.Headers.AcceptLanguage.First().Item1; if (!IsValidCultureInfoName(cultureLetters, configuration)) { return null; } return new CultureInfo(cultureLetters); } return null; }
/// <summary> /// Checks to see if the Cookies has a CurrentCulture key /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Cookies otherwise null</returns> public static CultureInfo CookieCulture(NancyContext context, GlobalizationConfiguration configuration) { string cookieCulture = null; if (context.Request.Cookies.TryGetValue("CurrentCulture", out cookieCulture)) { if (!IsValidCultureInfoName(cookieCulture, configuration)) { return(null); } return(new CultureInfo(cookieCulture)); } return(null); }
/// <summary> /// Checks to see if the AcceptLanguage in the Headers can be used to make a CultureInfo. Uses highest weighted if multiple defined. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Headers otherwise null</returns> public static CultureInfo HeaderCulture(NancyContext context, GlobalizationConfiguration configuration) { if (context.Request.Headers.AcceptLanguage.Any()) { var cultureLetters = context.Request.Headers.AcceptLanguage.First().Item1; if (!IsValidCultureInfoName(cultureLetters, configuration)) { return(null); } return(new CultureInfo(cultureLetters)); } return(null); }
/// <summary> /// Checks to see if the Form has a CurrentCulture key. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Form otherwise null</returns> public static CultureInfo FormCulture(NancyContext context, GlobalizationConfiguration configuration) { if (context.Request.Form["CurrentCulture"] != null) { string cultureLetters = context.Request.Form["CurrentCulture"]; if (!IsValidCultureInfoName(cultureLetters, configuration)) { return(null); } return(new CultureInfo(cultureLetters)); } return(null); }
/// <summary> /// Checks to see if the Form has a CurrentCulture key. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Form otherwise null</returns> public static CultureInfo FormCulture(NancyContext context, GlobalizationConfiguration configuration) { if (context.Request.Form["CurrentCulture"] != null) { string cultureLetters = context.Request.Form["CurrentCulture"]; if (!IsValidCultureInfoName(cultureLetters, configuration)) { return null; } return new CultureInfo(cultureLetters); } return null; }
/// <summary> /// Checks to see if the first argument in the Path can be used to make a CultureInfo. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Path otherwise null</returns> public static CultureInfo PathCulture(NancyContext context, GlobalizationConfiguration configuration) { var segments = context.Request.Url.Path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); var firstSegment = segments.FirstOrDefault(); if (firstSegment != null && IsValidCultureInfoName(firstSegment, configuration)) { context.Request.Url.Path = string.Concat("/", string.Join("/", segments.Skip(1))); return(new CultureInfo(firstSegment)); } return(null); }
/// <summary> /// Checks to see if the first argument in the Path can be used to make a CultureInfo. /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Path otherwise null</returns> public static CultureInfo PathCulture(NancyContext context, GlobalizationConfiguration configuration) { var segments = context.Request.Url.Path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); var firstSegment = segments.FirstOrDefault(); if (firstSegment != null && IsValidCultureInfoName(firstSegment, configuration)) { context.Request.Url.Path = string.Concat("/", string.Join("/", segments.Skip(1))); return new CultureInfo(firstSegment); } return null; }
protected void RegisterCultureSettings(TinyIoCContainer container) { var defaultLanguage = Api.ApiSettings?.SupportedCultures?.FirstOrDefault() ?? "en-US"; var supportedCultures = Api.ApiSettings?.SupportedCultures?.Select(r => r.ToLowerInvariant().Trim()); if (supportedCultures?.Any() == false) { supportedCultures = new string[] { defaultLanguage }; } GlobalizationConfiguration config = new GlobalizationConfiguration(supportedCultures, defaultLanguage); var defaultCulture = new CultureInfo(defaultLanguage); CultureInfo.DefaultThreadCurrentCulture = defaultCulture; CultureInfo.DefaultThreadCurrentUICulture = defaultCulture; container.Register(config); }
/// <summary> /// Uses the Thread.CurrentThread.CurrentCulture /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo from CurrentThread</returns> public static CultureInfo ThreadCulture(NancyContext context, GlobalizationConfiguration configuration) { return(Thread.CurrentThread.CurrentCulture); }
public void Validation_should_return_false_if_invalid_culture_name(string cultureName) { //Given/When var configuration = new GlobalizationConfiguration(Enumerable.Empty<string>()); var result = BuiltInCultureConventions.IsValidCultureInfoName(cultureName, configuration); //Then result.ShouldBeFalse(); }
/// <summary> /// Creates a new instance of DefaultCultureService /// </summary> /// <param name="cultureConventions">CultureConventions to use for determining culture</param> /// <param name="environment">An instance of <see cref="INancyEnvironment"/> to retrieve <see cref="GlobalizationConfiguration"/> from.</param> public DefaultCultureService(CultureConventions cultureConventions, INancyEnvironment environment) { this.cultureConventions = cultureConventions; this.configuration = environment.GetValue<GlobalizationConfiguration>(); }
/// <summary> /// Checks to see if a default culture has been set on <see cref="GlobalizationConfiguration"/> /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in <see cref="GlobalizationConfiguration"/> Default Culture else null</returns> public static CultureInfo GlobalizationConfigurationCulture(NancyContext context, GlobalizationConfiguration configuration) { if (configuration.DefaultCulture != null) { if (!IsValidCultureInfoName(configuration.DefaultCulture, configuration)) { return(null); } return(new CultureInfo(configuration.DefaultCulture)); } return(null); }
/// <summary> /// Checks to see if the Cookies has a CurrentCulture key /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Cookies otherwise null</returns> public static CultureInfo CookieCulture(NancyContext context, GlobalizationConfiguration configuration) { string cookieCulture = null; if (context.Request.Cookies.TryGetValue("CurrentCulture", out cookieCulture)) { if (!IsValidCultureInfoName(cookieCulture, configuration)) { return null; } return new CultureInfo(cookieCulture); } return null; }
/// <summary> /// Initializes a new instance of the <see cref="JsonBodyDeserializer"/>, /// with the provided <paramref name="environment"/>. /// </summary> /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param> public JsonBodyDeserializer(INancyEnvironment environment) { this.jsonConfiguration = environment.GetValue<JsonConfiguration>(); this.globalizationConfiguration = environment.GetValue<GlobalizationConfiguration>(); }
/// <summary> /// Initializes a new instance of the <see cref="JsonBodyDeserializer"/>, /// with the provided <paramref name="environment"/>. /// </summary> /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param> public JsonBodyDeserializer(INancyEnvironment environment) { this.jsonConfiguration = environment.GetValue <JsonConfiguration>(); this.globalizationConfiguration = environment.GetValue <GlobalizationConfiguration>(); }
public void Should_adjust_to_universal_time_when_globalizationconfiguration_datetimestyles_requires_it() { // Given var expected = new DateTime(2016, 05, 24, 08, 41, 37, DateTimeKind.Utc); var config = new GlobalizationConfiguration(new [] {"en-US"}, dateTimeStyles: DateTimeStyles.AdjustToUniversal); var value = new DynamicDictionaryValue("2016-05-24T10:41:37+02:00", config); // When DateTime actual = value; // Then actual.ShouldEqual(expected); }
/// <summary> /// Checks to see if a default culture has been set on <see cref="GlobalizationConfiguration"/> /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in <see cref="GlobalizationConfiguration"/> Default Culture else null</returns> public static CultureInfo GlobalizationConfigurationCulture(NancyContext context, GlobalizationConfiguration configuration) { if (configuration.DefaultCulture != null) { if (!IsValidCultureInfoName(configuration.DefaultCulture, configuration)) { return null; } return new CultureInfo(configuration.DefaultCulture); } return null; }
public void Validation_should_return_true_if_valid_culture_name(string cultureName) { //Given/When var configuration = new GlobalizationConfiguration(new[] { cultureName }); var result = BuiltInCultureConventions.IsValidCultureInfoName(cultureName, configuration); //Then result.ShouldBeTrue(); }
/// <summary> /// Creates a new instance of DefaultCultureService /// </summary> /// <param name="cultureConventions">CultureConventions to use for determining culture</param> /// <param name="environment">An instance of <see cref="INancyEnvironment"/> to retrieve <see cref="GlobalizationConfiguration"/> from.</param> public DefaultCultureService(CultureConventions cultureConventions, INancyEnvironment environment) { this.cultureConventions = cultureConventions; this.configuration = environment.GetValue <GlobalizationConfiguration>(); }
/// <summary> /// Uses the Thread.CurrentThread.CurrentCulture /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo from CurrentThread</returns> public static CultureInfo ThreadCulture(NancyContext context, GlobalizationConfiguration configuration) { return Thread.CurrentThread.CurrentCulture; }
/// <summary> /// Validates culture name /// </summary> /// <param name="name">Culture name eg\en-GB</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>True/False if valid culture</returns> public static bool IsValidCultureInfoName(string name, GlobalizationConfiguration configuration) { if (string.IsNullOrWhiteSpace(name)) { return false; } return configuration.SupportedCultureNames.Contains(name); }
/// <summary> /// Initializes a new instance of the <see cref="DefaultJsonSerializer"/> class, /// with the provided <see cref="INancyEnvironment"/>. /// </summary> /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param> public DefaultJsonSerializer(INancyEnvironment environment) { this.jsonConfiguration = environment.GetValue <JsonConfiguration>(); this.traceConfiguration = environment.GetValue <TraceConfiguration>(); this.globalizationConfiguration = environment.GetValue <GlobalizationConfiguration>(); }
/// <summary> /// Checks to see if the Session has a CurrentCulture key /// </summary> /// <param name="context">NancyContext</param> /// <param name="configuration">Culture configuration that contains allowed cultures</param> /// <returns>CultureInfo if found in Session otherwise null</returns> public static CultureInfo SessionCulture(NancyContext context, GlobalizationConfiguration configuration) { var sessionType = context.Request.Session as NullSessionProvider; if (sessionType == null && context.Request.Session["CurrentCulture"] != null) { return (CultureInfo)context.Request.Session["CurrentCulture"]; } return null; }
/// <summary> /// Creates an instance of <see cref="JavaScriptSerializer"/> /// </summary> /// <param name="jsonConfiguration">A <see cref="JsonConfiguration"/> object to configure the serializer</param> /// <param name="globalizationConfiguration">A <see cref="GlobalizationConfiguration"/> object to configure the serializer</param> public JavaScriptSerializer(JsonConfiguration jsonConfiguration, GlobalizationConfiguration globalizationConfiguration) { this.jsonConfiguration = jsonConfiguration; this.globalizationConfiguration = globalizationConfiguration; this.serializerStrategy = new NancySerializationStrategy(jsonConfiguration.RetainCasing, jsonConfiguration.SerializeEnumToString); }