/// <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); }
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); }
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); }
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()); }
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); }
public static void BuildClaimsPrincipal_null_claims_no_exception() { var claimsPrincipal = ApiKeyUtils.BuildClaimsPrincipal(null, "Test", null, null); Assert.NotNull(claimsPrincipal); }
public static void BuildClaimsPrincipal_null_schemeName_throws_ArgumentNullException() { var exception = Assert.Throws <ArgumentNullException>(() => ApiKeyUtils.BuildClaimsPrincipal(null, null, null, null)); Assert.Contains("schemeName", exception.Message); }