Exemple #1
0
        /// <summary>
        /// 根据城市天气ID获取天气信息
        /// </summary>
        /// <param name="cityName"></param>
        /// <returns></returns>
        public CityWeather GetCityWeather(string cityName)
        {
            var api         = ApiKeyUtils.GetHeWeatherApi(cityName);
            var weather     = HttpUtils.HttpGet(api);
            var cityWeather = JsonUtils.JsonToObj <CityWeather>(weather);

            if (cityWeather == null || cityWeather.HeWeather5.Count <= 0)
            {
                return(cityWeather);
            }
            var suggestion = cityWeather.HeWeather5[0].suggestion;

            if (suggestion == null)
            {
                return(cityWeather);
            }
            //格式化指数信息为list,便于微信端显示
            var stype = suggestion.GetType();

            cityWeather.HeWeather5[0].suggestions = new List <CityWeather.Index>();
            foreach (var item in stype.GetProperties())
            {
                var obj = (CityWeather.Index)SystemUtils.GetObjectPropertyValue(suggestion, item.Name);
                SystemUtils.SetTPropertyValueByName(obj, "src", item.Name);
            }
            cityWeather.HeWeather5[0].suggestions.AddRange(
                stype.GetProperties()
                .Select(item => SystemUtils.SetTPropertyValueByName((CityWeather.Index)SystemUtils.GetObjectPropertyValue(suggestion, item.Name), "src", item.Name)));

            return(cityWeather);
        }
Exemple #2
0
        public static void BuildClaimsPrincipal_adds_single_identity_without_claims()
        {
            var schemeName      = "Test";
            var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(null, schemeName, null, null);

            Assert.NotNull(claimsPrincipal);
            Assert.Single(claimsPrincipal.Identities);
            Assert.NotNull(claimsPrincipal.Identity);
            Assert.Equal(schemeName, claimsPrincipal.Identity.AuthenticationType);
            Assert.Empty(claimsPrincipal.Claims);
        }
Exemple #3
0
        public static void BuildClaimsPrincipal_ownerName_adds_Name_and_NameIdentifier_claims()
        {
            var ownerName       = "Test";
            var schemeName      = "Test";
            var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(ownerName, schemeName, null, null);

            Assert.NotNull(claimsPrincipal);
            Assert.NotEmpty(claimsPrincipal.Claims);
            Assert.Equal(2, claimsPrincipal.Claims.Count());
            Assert.Contains(claimsPrincipal.Claims, c => c.Type == ClaimTypes.NameIdentifier && c.Value == ownerName);
            Assert.Contains(claimsPrincipal.Claims, c => c.Type == ClaimTypes.Name && c.Value == ownerName);
        }
Exemple #4
0
        public static void BuildClaimsPrincipal_adds_single_identity_with_claims()
        {
            var schemeName = "Test";
            var claims     = new List <Claim>
            {
                new Claim(ClaimTypes.Email, "*****@*****.**"),
                new Claim(ClaimTypes.Role, "admin")
            };
            var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(null, schemeName, null, claims);

            Assert.NotNull(claimsPrincipal);
            Assert.Single(claimsPrincipal.Identities);
            Assert.NotNull(claimsPrincipal.Identity);
            Assert.Equal(schemeName, claimsPrincipal.Identity.AuthenticationType);
            Assert.NotEmpty(claimsPrincipal.Claims);
            Assert.Equal(claims.Count, claimsPrincipal.Claims.Count());
        }
Exemple #5
0
        public static void BuildClaimsPrincipal_ownerName_adds_Name_and_NameIdentifier_claims2()
        {
            var ownerName  = "Test";
            var schemeName = "Test";
            var claims     = new List <Claim>
            {
                new Claim(ClaimTypes.Email, "*****@*****.**"),
                new Claim(ClaimTypes.Role, "admin")
            };
            var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(ownerName, schemeName, null, claims);

            Assert.NotNull(claimsPrincipal);
            Assert.NotEmpty(claimsPrincipal.Claims);
            Assert.NotEqual(claims.Count, claimsPrincipal.Claims.Count());
            Assert.Equal(claims.Count + 2, claimsPrincipal.Claims.Count());
            Assert.Contains(claimsPrincipal.Claims, c => c.Type == ClaimTypes.NameIdentifier && c.Value == ownerName);
            Assert.Contains(claimsPrincipal.Claims, c => c.Type == ClaimTypes.Name && c.Value == ownerName);
        }
Exemple #6
0
        public static void BuildClaimsPrincipal_null_claims_no_exception()
        {
            var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(null, "Test", null, null);

            Assert.NotNull(claimsPrincipal);
        }
Exemple #7
0
        public static void BuildClaimsPrincipal_null_schemeName_throws_ArgumentNullException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ApiKeyUtils.BuildClaimsPrincipal(null, null, null, null));

            Assert.Contains("schemeName", exception.Message);
        }