Ejemplo n.º 1
0
 /// <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>();
 }
Ejemplo n.º 2
0
 public AlreadyKnownRouteResolver(INancyEnvironment environment, nancyrouting.Route route, INancyModule module, nancyrouting.Trie.MatchResult matchResult)
 {
     _globalizationConfiguraton = environment.GetValue <GlobalizationConfiguration>();
     _route       = route;
     _module      = module;
     _matchResult = matchResult;
 }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        /// <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));
        }
Ejemplo n.º 5
0
 /// <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);
     }
 }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        /// <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();
        }
Ejemplo n.º 8
0
        /// <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();
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        /// <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;
        }
Ejemplo n.º 13
0
        /// <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);
        }
Ejemplo n.º 14
0
        /// <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);
        }
Ejemplo n.º 15
0
        /// <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);
        }
Ejemplo n.º 16
0
        /// <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;
        }
Ejemplo n.º 17
0
        /// <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);
        }
Ejemplo n.º 18
0
        /// <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;
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
 /// <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);
 }
Ejemplo n.º 21
0
        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();
        }
Ejemplo n.º 22
0
 /// <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>();
 }
Ejemplo n.º 23
0
        /// <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);
        }
Ejemplo n.º 24
0
        /// <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;
        }
Ejemplo n.º 25
0
 /// <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>();
 }
Ejemplo n.º 26
0
 /// <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);
        }
Ejemplo n.º 28
0
        /// <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;
        }
Ejemplo n.º 29
0
        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();
        }
Ejemplo n.º 30
0
 /// <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>();
 }
Ejemplo n.º 31
0
 /// <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;
 }
Ejemplo n.º 32
0
        /// <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>();
 }
        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);
        }
Ejemplo n.º 35
0
        /// <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;
        }
Ejemplo n.º 36
0
 /// <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);
 }