[后台] 修改api_weather fix problem api of rain, and typhoon with model
This commit is contained in:
		
							parent
							
								
									0c6b9e465f
								
							
						
					
					
						commit
						371e80eb89
					
				@ -200,71 +200,71 @@ namespace Backend.Quartz.Jobs
 | 
				
			|||||||
                        doc.Load("root/PowerfulRain.xml");
 | 
					                        doc.Load("root/PowerfulRain.xml");
 | 
				
			||||||
                        var json = JsonConvert.SerializeXmlNode(doc);
 | 
					                        var json = JsonConvert.SerializeXmlNode(doc);
 | 
				
			||||||
                        var haveinfo = json.Split("info");
 | 
					                        var haveinfo = json.Split("info");
 | 
				
			||||||
                        //if (haveinfo.Length > 2)
 | 
					                        if (haveinfo.Length > 2)
 | 
				
			||||||
                        //{
 | 
					                        {
 | 
				
			||||||
                        //    var observation = RainApi.Welcome.FromJson(json);
 | 
					                            var observation = RainApi.Welcome.FromJson(json);
 | 
				
			||||||
                        //    var area = observation.Alert.Info[0].Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
					                            var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
				
			||||||
                        //    var sql = $"select id from api_rain where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info[0].Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info[0].Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
					                            var sql = $"select id from api_rain where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
				
			||||||
                        //    var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
					                            var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //    Dictionary<string, object> RainAPIdb = new Dictionary<string, object>()
 | 
					                            Dictionary<string, object> RainAPIdb = new Dictionary<string, object>()
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        { "@msgType", observation.Alert.MsgType},
 | 
					                                { "@msgType", observation.Alert.MsgType},
 | 
				
			||||||
                        //        { "@headline", observation.Alert.Info[0].Headline},
 | 
					                                { "@headline", observation.Alert.Info.Headline},
 | 
				
			||||||
                        //        { "@areaDesc", area},
 | 
					                                { "@areaDesc", area},
 | 
				
			||||||
                        //        { "@onset", observation.Alert.Info[0].Onset},
 | 
					                                { "@onset", observation.Alert.Info.Onset},
 | 
				
			||||||
                        //        { "@expires", observation.Alert.Info[0].Expires},
 | 
					                                { "@expires", observation.Alert.Info.Expires},
 | 
				
			||||||
                        //        { "@created_by", "system"},
 | 
					                                { "@created_by", "system"},
 | 
				
			||||||
                        //        { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					                                { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //    };
 | 
					                            };
 | 
				
			||||||
                        //    var id = await backendRepository.AddOneByCustomTableReturnId(RainAPIdb, "api_rain");
 | 
					                            var id = await backendRepository.AddOneByCustomTableReturnId(RainAPIdb, "api_rain");
 | 
				
			||||||
                        //    if (NeedCallApi != 0)
 | 
					                            if (NeedCallApi != 0)
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        var val = RainValue(observation.Alert.MsgType, observation.Alert.Info[0].Headline);
 | 
					                                var val = RainValue(observation.Alert.MsgType, observation.Alert.Info.Headline);
 | 
				
			||||||
                        //        if (val < 5)
 | 
					                                if (val < 5)
 | 
				
			||||||
                        //        {
 | 
					                                {
 | 
				
			||||||
                        //            var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET1/SeverityLEVL_RAIN/set", val.ToString());
 | 
					                                    var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET1/SeverityLEVL_RAIN/set", val.ToString());
 | 
				
			||||||
                        //            UpdatedNiagara("api_rain", ReStr, id);
 | 
					                                    UpdatedNiagara("api_rain", ReStr, id);
 | 
				
			||||||
                        //        }
 | 
					                                }
 | 
				
			||||||
                        //    }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //    FolderFunction folderFunction = new FolderFunction();
 | 
					                            FolderFunction folderFunction = new FolderFunction();
 | 
				
			||||||
                        //    folderFunction.DeleteFile("root/PowerfulRain.xml");
 | 
					                            folderFunction.DeleteFile("root/PowerfulRain.xml");
 | 
				
			||||||
                        //    await task_Detail.InsertWorkTime_End("WeatherAPI", "api_rain");
 | 
					                            await task_Detail.InsertWorkTime_End("WeatherAPI", "api_rain");
 | 
				
			||||||
                        //}
 | 
					                        }
 | 
				
			||||||
                        //else
 | 
					                        else
 | 
				
			||||||
                        //{
 | 
					                        {
 | 
				
			||||||
                        //    var observation = RainApi.Welcome.FromJson(json);
 | 
					                            var observation = RainApi.Welcome.FromJson(json);
 | 
				
			||||||
                        //    var area = observation.Alert.Info[0].Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
					                            var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
				
			||||||
                        //    var sql = $"select id from api_rain where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info[0].Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info[0].Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
					                            var sql = $"select id from api_rain where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
				
			||||||
                        //    var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
					                            var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //    Dictionary<string, object> RainAPIdb = new Dictionary<string, object>()
 | 
					                            Dictionary<string, object> RainAPIdb = new Dictionary<string, object>()
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        { "@msgType", observation.Alert.MsgType},
 | 
					                                { "@msgType", observation.Alert.MsgType},
 | 
				
			||||||
                        //        { "@headline", observation.Alert.Info[0].Headline},
 | 
					                                { "@headline", observation.Alert.Info.Headline},
 | 
				
			||||||
                        //        { "@areaDesc", area},
 | 
					                                { "@areaDesc", area},
 | 
				
			||||||
                        //        { "@onset", observation.Alert.Info[0].Onset.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					                                { "@onset", observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //        { "@expires", observation.Alert.Info[0].Expires.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					                                { "@expires", observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //        { "@created_by", "system"},
 | 
					                                { "@created_by", "system"},
 | 
				
			||||||
                        //        { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					                                { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //    };
 | 
					                            };
 | 
				
			||||||
                        //    var id = await backendRepository.AddOneByCustomTableReturnId(RainAPIdb, "api_rain");
 | 
					                            var id = await backendRepository.AddOneByCustomTableReturnId(RainAPIdb, "api_rain");
 | 
				
			||||||
                        //    if (NeedCallApi != 0)
 | 
					                            if (NeedCallApi != 0)
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        var val = RainValue(observation.Alert.MsgType, observation.Alert.Info[0].Headline);
 | 
					                                var val = RainValue(observation.Alert.MsgType, observation.Alert.Info.Headline);
 | 
				
			||||||
                        //        if (val < 5)
 | 
					                                if (val < 5)
 | 
				
			||||||
                        //        {
 | 
					                                {
 | 
				
			||||||
                        //            var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET1/SeverityLEVL_RAIN/set", val.ToString());
 | 
					                                    var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET1/SeverityLEVL_RAIN/set", val.ToString());
 | 
				
			||||||
                        //            UpdatedNiagara("api_rain", ReStr, id);
 | 
					                                    UpdatedNiagara("api_rain", ReStr, id);
 | 
				
			||||||
                        //        }
 | 
					                                }
 | 
				
			||||||
                        //    }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //    FolderFunction folderFunction = new FolderFunction();
 | 
					                            FolderFunction folderFunction = new FolderFunction();
 | 
				
			||||||
                        //    folderFunction.DeleteFile("root/PowerfulRain.xml");
 | 
					                            folderFunction.DeleteFile("root/PowerfulRain.xml");
 | 
				
			||||||
                        //    await task_Detail.InsertWorkTime_End("WeatherAPI", "api_rain");
 | 
					                            await task_Detail.InsertWorkTime_End("WeatherAPI", "api_rain");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //}
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    catch (Exception ex)
 | 
					                    catch (Exception ex)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
@ -284,71 +284,71 @@ namespace Backend.Quartz.Jobs
 | 
				
			|||||||
                        var json = JsonConvert.SerializeXmlNode(doc);
 | 
					                        var json = JsonConvert.SerializeXmlNode(doc);
 | 
				
			||||||
                        var haveinfo = json.Split("info");
 | 
					                        var haveinfo = json.Split("info");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //if (haveinfo.Length > 2)
 | 
					                        if (haveinfo.Length > 2)
 | 
				
			||||||
                        //{
 | 
					                        {
 | 
				
			||||||
                        //    var observation = TyphoonApi.Welcome.FromJson(json);
 | 
					                            var observation = TyphoonApi.Welcome.FromJson(json);
 | 
				
			||||||
 | 
					                            var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
				
			||||||
 | 
					                            var sql = $"select id from api_typhoon where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
				
			||||||
 | 
					                            var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
				
			||||||
 | 
					                            Dictionary<string, object> EarthquakeAPIdb = new Dictionary<string, object>()
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                { "@msgType", observation.Alert.MsgType},
 | 
				
			||||||
 | 
					                                { "@headline", observation.Alert.Info.Headline},
 | 
				
			||||||
 | 
					                                { "@areaDesc", area},
 | 
				
			||||||
 | 
					                                { "@urgency",observation.Alert.Info.Urgency},
 | 
				
			||||||
 | 
					                                { "@severity",observation.Alert.Info.Severity},
 | 
				
			||||||
 | 
					                                { "@onset", observation.Alert.Info.Onset},
 | 
				
			||||||
 | 
					                                { "@expires", observation.Alert.Info.Expires},
 | 
				
			||||||
 | 
					                                { "@created_by", "system"},
 | 
				
			||||||
 | 
					                                { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
 | 
					                            };
 | 
				
			||||||
 | 
					                            var id = await backendRepository.AddOneByCustomTableReturnId(EarthquakeAPIdb, "api_typhoon");
 | 
				
			||||||
 | 
					                            if (NeedCallApi != 0)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                if (observation.Alert.Info.Urgency != null && observation.Alert.Info.Urgency != "Expected")
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                    var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET2/SeverityLEVL_Typhoon/set", observation.Alert.Info.Urgency);
 | 
				
			||||||
 | 
					                                    UpdatedNiagara("api_typhoon", ReStr, id);
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            FolderFunction folderFunction = new FolderFunction();
 | 
				
			||||||
 | 
					                            folderFunction.DeleteFile("root/Typhoon.xml");
 | 
				
			||||||
 | 
					                            await task_Detail.InsertWorkTime_End("WeatherAPI", "api_typhoon");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            var observation = TyphoonApi.Welcome.FromJson(json);
 | 
				
			||||||
                            //var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
					                            //var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
				
			||||||
                        //    var sql = $"select id from api_typhoon where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info[0].Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info[0].Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
					                            var sql = $"select id from api_typhoon where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
				
			||||||
                        //    var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
					                            var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
				
			||||||
                        //    Dictionary<string, object> EarthquakeAPIdb = new Dictionary<string, object>()
 | 
					                            Dictionary<string, object> EarthquakeAPIdb = new Dictionary<string, object>()
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        { "@msgType", observation.Alert.MsgType},
 | 
					                                { "@msgType", observation.Alert.MsgType},
 | 
				
			||||||
                        //        { "@headline", observation.Alert.Info[0].Headline},
 | 
					                                { "@headline", observation.Alert.Info.Headline},
 | 
				
			||||||
                                //{ "@areaDesc", area},
 | 
					                                //{ "@areaDesc", area},
 | 
				
			||||||
                        //        { "@urgency",observation.Alert.Info[0].Urgency},
 | 
					                                { "@urgency",observation.Alert.Info.Urgency},
 | 
				
			||||||
                        //        { "@severity",observation.Alert.Info[0].Severity},
 | 
					                                { "@severity",observation.Alert.Info.Severity},
 | 
				
			||||||
                        //        { "@onset", observation.Alert.Info[0].Onset},
 | 
					                                { "@onset", observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //        { "@expires", observation.Alert.Info[0].Expires},
 | 
					                                { "@expires", observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //        { "@created_by", "system"},
 | 
					                                { "@created_by", "system"},
 | 
				
			||||||
                        //        { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					                                { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
				
			||||||
                        //    };
 | 
					                            };
 | 
				
			||||||
                        //    var id = await backendRepository.AddOneByCustomTableReturnId(EarthquakeAPIdb, "api_typhoon");
 | 
					                            var id = await backendRepository.AddOneByCustomTableReturnId(EarthquakeAPIdb, "api_typhoon");
 | 
				
			||||||
                        //    if (NeedCallApi != 0)
 | 
					                            if (NeedCallApi != 0)
 | 
				
			||||||
                        //    {
 | 
					                            {
 | 
				
			||||||
                        //        if (observation.Alert.Info[0].Urgency != null && observation.Alert.Info[0].Urgency != "Expected")
 | 
					                                if (observation.Alert.Info.Urgency != null && observation.Alert.Info.Urgency != "Expected")
 | 
				
			||||||
                        //        {
 | 
					                                {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //            var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET2/SeverityLEVL_Typhoon/set", observation.Alert.Info[0].Urgency);
 | 
					                                    var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET2/SeverityLEVL_Typhoon/set", observation.Alert.Info.Urgency);
 | 
				
			||||||
                        //            UpdatedNiagara("api_typhoon", ReStr, id);
 | 
					                                    UpdatedNiagara("api_typhoon", ReStr, id);
 | 
				
			||||||
                        //        }
 | 
					                                }
 | 
				
			||||||
                        //    }
 | 
					                            }
 | 
				
			||||||
                        //    FolderFunction folderFunction = new FolderFunction();
 | 
					                            FolderFunction folderFunction = new FolderFunction();
 | 
				
			||||||
                        //    folderFunction.DeleteFile("root/Typhoon.xml");
 | 
					                            folderFunction.DeleteFile("root/Typhoon.xml");
 | 
				
			||||||
                        //    await task_Detail.InsertWorkTime_End("WeatherAPI", "api_typhoon");
 | 
					                            await task_Detail.InsertWorkTime_End("WeatherAPI", "api_typhoon");
 | 
				
			||||||
                        //}
 | 
					 | 
				
			||||||
                        //else
 | 
					 | 
				
			||||||
                        //{
 | 
					 | 
				
			||||||
                        //    var observation = TyphoonApi.Welcome.FromJson(json);
 | 
					 | 
				
			||||||
                        //    //var area = observation.Alert.Info.Area.Where(a => a.Geocode.Value == "63").Select(a => a.AreaDesc).FirstOrDefault();
 | 
					 | 
				
			||||||
                        //    var sql = $"select id from api_typhoon where msgType = '{observation.Alert.MsgType}' and onset = '{observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")}' and expires = '{observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")}'";
 | 
					 | 
				
			||||||
                        //    var NeedCallApi = await backendRepository.GetOneAsync<int>(sql);
 | 
					 | 
				
			||||||
                        //    Dictionary<string, object> EarthquakeAPIdb = new Dictionary<string, object>()
 | 
					 | 
				
			||||||
                        //    {
 | 
					 | 
				
			||||||
                        //        { "@msgType", observation.Alert.MsgType},
 | 
					 | 
				
			||||||
                        //        { "@headline", observation.Alert.Info.Headline},
 | 
					 | 
				
			||||||
                        //        //{ "@areaDesc", area},
 | 
					 | 
				
			||||||
                        //        { "@urgency",observation.Alert.Info.Urgency},
 | 
					 | 
				
			||||||
                        //        { "@severity",observation.Alert.Info.Severity},
 | 
					 | 
				
			||||||
                        //        { "@onset", observation.Alert.Info.Onset.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					 | 
				
			||||||
                        //        { "@expires", observation.Alert.Info.Expires.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					 | 
				
			||||||
                        //        { "@created_by", "system"},
 | 
					 | 
				
			||||||
                        //        { "@created_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
 | 
					 | 
				
			||||||
                        //    };
 | 
					 | 
				
			||||||
                        //    var id = await backendRepository.AddOneByCustomTableReturnId(EarthquakeAPIdb, "api_typhoon");
 | 
					 | 
				
			||||||
                        //    if (NeedCallApi != 0)
 | 
					 | 
				
			||||||
                        //    {
 | 
					 | 
				
			||||||
                        //        if (observation.Alert.Info.Urgency != null && observation.Alert.Info.Urgency != "Expected")
 | 
					 | 
				
			||||||
                        //        {
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //            var ReStr = Fetch_PostWithJSONFormat($@"{obixApiConfig.ApiBase}obix/config/Arena/D2/CWB/L110/CAP/D2_CWB_L110_CAP_MET2/SeverityLEVL_Typhoon/set", observation.Alert.Info.Urgency);
 | 
					                        }
 | 
				
			||||||
                        //            UpdatedNiagara("api_typhoon", ReStr, id);
 | 
					 | 
				
			||||||
                        //        }
 | 
					 | 
				
			||||||
                        //    }
 | 
					 | 
				
			||||||
                        //    FolderFunction folderFunction = new FolderFunction();
 | 
					 | 
				
			||||||
                        //    folderFunction.DeleteFile("root/Typhoon.xml");
 | 
					 | 
				
			||||||
                        //    await task_Detail.InsertWorkTime_End("WeatherAPI", "api_typhoon");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        //}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    catch (Exception ex)
 | 
					                    catch (Exception ex)
 | 
				
			||||||
 | 
				
			|||||||
@ -55,7 +55,7 @@ namespace RainApi
 | 
				
			|||||||
        public string References { get; set; }
 | 
					        public string References { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("info")]
 | 
					        [JsonProperty("info")]
 | 
				
			||||||
        public Info[] Info { get; set; }
 | 
					        public Info Info { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class Info
 | 
					    public partial class Info
 | 
				
			||||||
@ -69,9 +69,6 @@ namespace RainApi
 | 
				
			|||||||
        [JsonProperty("event")]
 | 
					        [JsonProperty("event")]
 | 
				
			||||||
        public string Event { get; set; }
 | 
					        public string Event { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("responseType")]
 | 
					 | 
				
			||||||
        public string ResponseType { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("urgency")]
 | 
					        [JsonProperty("urgency")]
 | 
				
			||||||
        public string Urgency { get; set; }
 | 
					        public string Urgency { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -102,14 +99,17 @@ namespace RainApi
 | 
				
			|||||||
        [JsonProperty("description")]
 | 
					        [JsonProperty("description")]
 | 
				
			||||||
        public string Description { get; set; }
 | 
					        public string Description { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [JsonProperty("instruction")]
 | 
				
			||||||
 | 
					        public string Instruction { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("web")]
 | 
					        [JsonProperty("web")]
 | 
				
			||||||
        public Uri Web { get; set; }
 | 
					        public Uri Web { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("parameter")]
 | 
					        [JsonProperty("parameter")]
 | 
				
			||||||
        public EventCode[] Parameter { get; set; }
 | 
					        public EventCode Parameter { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("area")]
 | 
					        [JsonProperty("area")]
 | 
				
			||||||
        public Area[] Area { get; set; }
 | 
					        public List<Area> Area { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class Area
 | 
					    public partial class Area
 | 
				
			||||||
@ -124,7 +124,7 @@ namespace RainApi
 | 
				
			|||||||
    public partial class EventCode
 | 
					    public partial class EventCode
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        [JsonProperty("valueName")]
 | 
					        [JsonProperty("valueName")]
 | 
				
			||||||
        public ValueName ValueName { get; set; }
 | 
					        public string ValueName { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("value")]
 | 
					        [JsonProperty("value")]
 | 
				
			||||||
        public string Value { get; set; }
 | 
					        public string Value { get; set; }
 | 
				
			||||||
@ -139,7 +139,7 @@ namespace RainApi
 | 
				
			|||||||
        public string Encoding { get; set; }
 | 
					        public string Encoding { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public enum ValueName { AlertColor, AlertTitle, ProfileCapTwpEvent10, SeverityLevel, TaiwanGeocode103, WebsiteColor };
 | 
					    public enum ValueName { AlertTitle, ProfileCapTwpEvent10, TaiwanGeocode103 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class Welcome
 | 
					    public partial class Welcome
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -177,16 +177,10 @@ namespace RainApi
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                case "Taiwan_Geocode_103":
 | 
					                case "Taiwan_Geocode_103":
 | 
				
			||||||
                    return ValueName.TaiwanGeocode103;
 | 
					                    return ValueName.TaiwanGeocode103;
 | 
				
			||||||
                case "alert_color":
 | 
					 | 
				
			||||||
                    return ValueName.AlertColor;
 | 
					 | 
				
			||||||
                case "alert_title":
 | 
					                case "alert_title":
 | 
				
			||||||
                    return ValueName.AlertTitle;
 | 
					                    return ValueName.AlertTitle;
 | 
				
			||||||
                case "profile:CAP-TWP:Event:1.0":
 | 
					                case "profile:CAP-TWP:Event:1.0":
 | 
				
			||||||
                    return ValueName.ProfileCapTwpEvent10;
 | 
					                    return ValueName.ProfileCapTwpEvent10;
 | 
				
			||||||
                case "severity_level":
 | 
					 | 
				
			||||||
                    return ValueName.SeverityLevel;
 | 
					 | 
				
			||||||
                case "website_color":
 | 
					 | 
				
			||||||
                    return ValueName.WebsiteColor;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            throw new Exception("Cannot unmarshal type ValueName");
 | 
					            throw new Exception("Cannot unmarshal type ValueName");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -204,21 +198,12 @@ namespace RainApi
 | 
				
			|||||||
                case ValueName.TaiwanGeocode103:
 | 
					                case ValueName.TaiwanGeocode103:
 | 
				
			||||||
                    serializer.Serialize(writer, "Taiwan_Geocode_103");
 | 
					                    serializer.Serialize(writer, "Taiwan_Geocode_103");
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                case ValueName.AlertColor:
 | 
					 | 
				
			||||||
                    serializer.Serialize(writer, "alert_color");
 | 
					 | 
				
			||||||
                    return;
 | 
					 | 
				
			||||||
                case ValueName.AlertTitle:
 | 
					                case ValueName.AlertTitle:
 | 
				
			||||||
                    serializer.Serialize(writer, "alert_title");
 | 
					                    serializer.Serialize(writer, "alert_title");
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                case ValueName.ProfileCapTwpEvent10:
 | 
					                case ValueName.ProfileCapTwpEvent10:
 | 
				
			||||||
                    serializer.Serialize(writer, "profile:CAP-TWP:Event:1.0");
 | 
					                    serializer.Serialize(writer, "profile:CAP-TWP:Event:1.0");
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                case ValueName.SeverityLevel:
 | 
					 | 
				
			||||||
                    serializer.Serialize(writer, "severity_level");
 | 
					 | 
				
			||||||
                    return;
 | 
					 | 
				
			||||||
                case ValueName.WebsiteColor:
 | 
					 | 
				
			||||||
                    serializer.Serialize(writer, "website_color");
 | 
					 | 
				
			||||||
                    return;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            throw new Exception("Cannot marshal type ValueName");
 | 
					            throw new Exception("Cannot marshal type ValueName");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -69,9 +69,6 @@ namespace TyphoonApi
 | 
				
			|||||||
        [JsonProperty("event")]
 | 
					        [JsonProperty("event")]
 | 
				
			||||||
        public string Event { get; set; }
 | 
					        public string Event { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("responseType")]
 | 
					 | 
				
			||||||
        public string ResponseType { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("urgency")]
 | 
					        [JsonProperty("urgency")]
 | 
				
			||||||
        public string Urgency { get; set; }
 | 
					        public string Urgency { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -100,16 +97,19 @@ namespace TyphoonApi
 | 
				
			|||||||
        public string Headline { get; set; }
 | 
					        public string Headline { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("description")]
 | 
					        [JsonProperty("description")]
 | 
				
			||||||
        public Description Description { get; set; }
 | 
					        public string Description { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [JsonProperty("instruction")]
 | 
				
			||||||
 | 
					        public string Instruction { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("web")]
 | 
					        [JsonProperty("web")]
 | 
				
			||||||
        public Uri Web { get; set; }
 | 
					        public Uri Web { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("parameter")]
 | 
					        [JsonProperty("parameter")]
 | 
				
			||||||
        public EventCode[] Parameter { get; set; }
 | 
					        public EventCode Parameter { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("area")]
 | 
					        [JsonProperty("area")]
 | 
				
			||||||
        public Area[] Area { get; set; }
 | 
					        public List<Area> Area { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class Area
 | 
					    public partial class Area
 | 
				
			||||||
@ -117,96 +117,8 @@ namespace TyphoonApi
 | 
				
			|||||||
        [JsonProperty("areaDesc")]
 | 
					        [JsonProperty("areaDesc")]
 | 
				
			||||||
        public string AreaDesc { get; set; }
 | 
					        public string AreaDesc { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [JsonProperty("polygon")]
 | 
					        [JsonProperty("geocode")]
 | 
				
			||||||
        public string Polygon { get; set; }
 | 
					        public EventCode Geocode { get; set; }
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class Description
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("typhoon-info")]
 | 
					 | 
				
			||||||
        public TyphoonInfo TyphoonInfo { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("section")]
 | 
					 | 
				
			||||||
        public DescriptionSection[] Section { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class DescriptionSection
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("@title")]
 | 
					 | 
				
			||||||
        public string Title { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("#text")]
 | 
					 | 
				
			||||||
        public string Text { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class TyphoonInfo
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("section")]
 | 
					 | 
				
			||||||
        public TyphoonInfoSection[] Section { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class TyphoonInfoSection
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("@title")]
 | 
					 | 
				
			||||||
        public string Title { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("#text", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public string Text { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("typhoon_name", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public string TyphoonName { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("cwb_typhoon_name", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public string CwbTyphoonName { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("analysis", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public Analysis Analysis { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("prediction", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public Analysis Prediction { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class Analysis
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("time")]
 | 
					 | 
				
			||||||
        public DateTimeOffset Time { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("position")]
 | 
					 | 
				
			||||||
        public string Position { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("max_winds")]
 | 
					 | 
				
			||||||
        public Gust MaxWinds { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("gust")]
 | 
					 | 
				
			||||||
        public Gust Gust { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("pressure")]
 | 
					 | 
				
			||||||
        public Gust Pressure { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("radius_of_15mps")]
 | 
					 | 
				
			||||||
        public Gust RadiusOf15Mps { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("scale", NullValueHandling = NullValueHandling.Ignore)]
 | 
					 | 
				
			||||||
        public Scale[] Scale { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class Gust
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("@unit")]
 | 
					 | 
				
			||||||
        public string Unit { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("#text")]
 | 
					 | 
				
			||||||
        [JsonConverter(typeof(ParseStringConverter))]
 | 
					 | 
				
			||||||
        public long Text { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public partial class Scale
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        [JsonProperty("@lang")]
 | 
					 | 
				
			||||||
        public string Lang { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        [JsonProperty("#text")]
 | 
					 | 
				
			||||||
        public string Text { get; set; }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class EventCode
 | 
					    public partial class EventCode
 | 
				
			||||||
@ -227,6 +139,8 @@ namespace TyphoonApi
 | 
				
			|||||||
        public string Encoding { get; set; }
 | 
					        public string Encoding { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public enum ValueName { AlertTitle, ProfileCapTwpEvent10, TaiwanGeocode103 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public partial class Welcome
 | 
					    public partial class Welcome
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public static Welcome FromJson(string json) => JsonConvert.DeserializeObject<Welcome>(json, QuickType.Converter.Settings);
 | 
					        public static Welcome FromJson(string json) => JsonConvert.DeserializeObject<Welcome>(json, QuickType.Converter.Settings);
 | 
				
			||||||
@ -245,25 +159,30 @@ namespace TyphoonApi
 | 
				
			|||||||
            DateParseHandling = DateParseHandling.None,
 | 
					            DateParseHandling = DateParseHandling.None,
 | 
				
			||||||
            Converters =
 | 
					            Converters =
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					                ValueNameConverter.Singleton,
 | 
				
			||||||
                new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
 | 
					                new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    internal class ParseStringConverter : JsonConverter
 | 
					    internal class ValueNameConverter : JsonConverter
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?);
 | 
					        public override bool CanConvert(Type t) => t == typeof(ValueName) || t == typeof(ValueName?);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
 | 
					        public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (reader.TokenType == JsonToken.Null) return null;
 | 
					            if (reader.TokenType == JsonToken.Null) return null;
 | 
				
			||||||
            var value = serializer.Deserialize<string>(reader);
 | 
					            var value = serializer.Deserialize<string>(reader);
 | 
				
			||||||
            long l;
 | 
					            switch (value)
 | 
				
			||||||
            if (Int64.TryParse(value, out l))
 | 
					 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return l;
 | 
					                case "Taiwan_Geocode_103":
 | 
				
			||||||
 | 
					                    return ValueName.TaiwanGeocode103;
 | 
				
			||||||
 | 
					                case "alert_title":
 | 
				
			||||||
 | 
					                    return ValueName.AlertTitle;
 | 
				
			||||||
 | 
					                case "profile:CAP-TWP:Event:1.0":
 | 
				
			||||||
 | 
					                    return ValueName.ProfileCapTwpEvent10;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            throw new Exception("Cannot unmarshal type long");
 | 
					            throw new Exception("Cannot unmarshal type ValueName");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
 | 
					        public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
 | 
				
			||||||
@ -273,11 +192,22 @@ namespace TyphoonApi
 | 
				
			|||||||
                serializer.Serialize(writer, null);
 | 
					                serializer.Serialize(writer, null);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            var value = (long)untypedValue;
 | 
					            var value = (ValueName)untypedValue;
 | 
				
			||||||
            serializer.Serialize(writer, value.ToString());
 | 
					            switch (value)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                case ValueName.TaiwanGeocode103:
 | 
				
			||||||
 | 
					                    serializer.Serialize(writer, "Taiwan_Geocode_103");
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                case ValueName.AlertTitle:
 | 
				
			||||||
 | 
					                    serializer.Serialize(writer, "alert_title");
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                case ValueName.ProfileCapTwpEvent10:
 | 
				
			||||||
 | 
					                    serializer.Serialize(writer, "profile:CAP-TWP:Event:1.0");
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            throw new Exception("Cannot marshal type ValueName");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static readonly ParseStringConverter Singleton = new ParseStringConverter();
 | 
					        public static readonly ValueNameConverter Singleton = new ValueNameConverter();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@
 | 
				
			|||||||
    "RegularUpdateDBTableJob": "0 0 2 * * ?",
 | 
					    "RegularUpdateDBTableJob": "0 0 2 * * ?",
 | 
				
			||||||
    "ParkingJob": "0 0 2 * * ?",
 | 
					    "ParkingJob": "0 0 2 * * ?",
 | 
				
			||||||
    "ArchiveElectricMeterHourJob": "0 0 2 * * ?",
 | 
					    "ArchiveElectricMeterHourJob": "0 0 2 * * ?",
 | 
				
			||||||
    "ArchiveElectricMeterDayJob": "0/5 * * * * ?",
 | 
					    "ArchiveElectricMeterDayJob": "0 0 2 * * ?",
 | 
				
			||||||
    "WeatherAPIJob": "0/5 * * * * ?"
 | 
					    "WeatherAPIJob": "0/5 * * * * ?"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "DBConfig": {
 | 
					  "DBConfig": {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,136 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2">
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    <identifier>CWB-Weather_extremely-rain_202306011035001</identifier>
 | 
					 | 
				
			||||||
    <sender>weather@cwb.gov.tw</sender>
 | 
					 | 
				
			||||||
    <sent>2023-06-01T10:43:55+08:00</sent>
 | 
					 | 
				
			||||||
    <status>Actual</status>
 | 
					 | 
				
			||||||
    <msgType>Update</msgType>
 | 
					 | 
				
			||||||
    <scope>Public</scope>
 | 
					 | 
				
			||||||
    <references>weather@cwb.gov.tw,CWB-Weather_extremely-rain_202306010655001,2023-06-01T07:02:17+08:00 weather@cwb.gov.tw,CWB-Weather_extremely-rain_202306010345001,2023-06-01T03:56:19+08:00</references>
 | 
					 | 
				
			||||||
    <info>
 | 
					 | 
				
			||||||
        <language>zh-TW</language>
 | 
					 | 
				
			||||||
        <category>Met</category>
 | 
					 | 
				
			||||||
        <event>降雨</event>
 | 
					 | 
				
			||||||
        <responseType>Monitor</responseType>
 | 
					 | 
				
			||||||
        <urgency>Future</urgency>
 | 
					 | 
				
			||||||
        <severity>Moderate</severity>
 | 
					 | 
				
			||||||
        <certainty>Likely</certainty>
 | 
					 | 
				
			||||||
        <eventCode>
 | 
					 | 
				
			||||||
            <valueName>profile:CAP-TWP:Event:1.0</valueName>
 | 
					 | 
				
			||||||
            <value>rainfall</value>
 | 
					 | 
				
			||||||
        </eventCode>
 | 
					 | 
				
			||||||
        <effective>2023-06-01T10:35:00+08:00</effective>
 | 
					 | 
				
			||||||
        <onset>2023-06-01T10:36:00+08:00</onset>
 | 
					 | 
				
			||||||
        <expires>2023-06-01T23:00:00+08:00</expires>
 | 
					 | 
				
			||||||
        <senderName>中央氣象局</senderName>
 | 
					 | 
				
			||||||
        <headline>大雨特報</headline>
 | 
					 | 
				
			||||||
        <description>
 | 
					 | 
				
			||||||
颱風外圍環流影響,今(1)日新竹以北及宜蘭山區有局部大雨發生的機率,請注意瞬間大雨,山區請慎防坍方及落石。
 | 
					 | 
				
			||||||
        </description>
 | 
					 | 
				
			||||||
        <web>https://www.cwb.gov.tw/V8/C/P/Warning/FIFOWS.html</web>
 | 
					 | 
				
			||||||
        <parameter>
 | 
					 | 
				
			||||||
            <valueName>alert_title</valueName>
 | 
					 | 
				
			||||||
            <value>大雨特報</value>
 | 
					 | 
				
			||||||
        </parameter>
 | 
					 | 
				
			||||||
        <parameter>
 | 
					 | 
				
			||||||
            <valueName>severity_level</valueName>
 | 
					 | 
				
			||||||
            <value>大雨</value>
 | 
					 | 
				
			||||||
        </parameter>
 | 
					 | 
				
			||||||
        <parameter>
 | 
					 | 
				
			||||||
            <valueName>alert_color</valueName>
 | 
					 | 
				
			||||||
            <value>黃色</value>
 | 
					 | 
				
			||||||
        </parameter>
 | 
					 | 
				
			||||||
        <parameter>
 | 
					 | 
				
			||||||
            <valueName>website_color</valueName>
 | 
					 | 
				
			||||||
            <value>255,255,0</value>
 | 
					 | 
				
			||||||
        </parameter>
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
  <area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹縣橫山鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000408</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹縣北埔鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000409</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>桃園市復興區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6801300</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>臺北市士林區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6301100</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市三峽區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6500900</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市石碇區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6501900</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>臺北市北投區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6301200</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹縣五峰鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000413</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹縣尖石鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000412</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市烏來區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6502900</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市坪林區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6502000</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市平溪區</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>6502400</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>宜蘭縣南澳鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000212</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area><area>
 | 
					 | 
				
			||||||
            <areaDesc>宜蘭縣大同鄉</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>1000211</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
    </info>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</alert>
 | 
					 | 
				
			||||||
@ -1,197 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2">
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    <identifier>CWB-Weather_typhoon-warning_202305311730001</identifier>
 | 
					 | 
				
			||||||
    <sender>weather@cwb.gov.tw</sender>
 | 
					 | 
				
			||||||
    <sent>2023-05-31T17:17:30+08:00</sent>
 | 
					 | 
				
			||||||
    <status>Actual</status>
 | 
					 | 
				
			||||||
    <msgType>Cancel</msgType>
 | 
					 | 
				
			||||||
    <scope>Public</scope>
 | 
					 | 
				
			||||||
    <references>weather@cwb.gov.tw,CWB-Weather_typhoon-warning_202305311430001,2023-05-31T14:22:23+08:00</references>
 | 
					 | 
				
			||||||
    <info>
 | 
					 | 
				
			||||||
        <language>zh-TW</language>
 | 
					 | 
				
			||||||
        <category>Met</category>
 | 
					 | 
				
			||||||
        <event>颱風</event>
 | 
					 | 
				
			||||||
        <urgency>Past</urgency>
 | 
					 | 
				
			||||||
        <severity>Minor</severity>
 | 
					 | 
				
			||||||
        <certainty>Observed</certainty>
 | 
					 | 
				
			||||||
        <eventCode>
 | 
					 | 
				
			||||||
            <valueName>profile:CAP-TWP:Event:1.0</valueName>
 | 
					 | 
				
			||||||
            <value>typhoon</value>
 | 
					 | 
				
			||||||
        </eventCode>
 | 
					 | 
				
			||||||
        <effective>2023-05-31T17:30:00+08:00</effective>
 | 
					 | 
				
			||||||
        <onset>2023-05-31T17:30:00+08:00</onset>
 | 
					 | 
				
			||||||
        <expires>2023-05-31T17:40:00+08:00</expires>
 | 
					 | 
				
			||||||
        <senderName>中央氣象局</senderName>
 | 
					 | 
				
			||||||
        <headline>解除颱風警報</headline>
 | 
					 | 
				
			||||||
        <description>
 | 
					 | 
				
			||||||
[颱風動態]
 | 
					 | 
				
			||||||
根據最新資料顯示,第2號颱風暴風半徑略為縮小,中心目前在鵝鑾鼻東北東方海面,向北北東轉東北移動,對巴士海峽及臺灣東半部近海威脅已解除。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[注意事項]
 | 
					 | 
				
			||||||
*巴士海峽及臺灣附近各海面風浪明顯偏大;基隆北海岸、南部、東半部(含蘭嶼、綠島)、恆春半島沿海及澎湖、馬祖易有長浪發生,尤其東半部(含蘭嶼、綠島)、基隆北海岸、恆春半島沿海易有4至5米浪高,請避免前往海邊活動。*陸上強風特報:今(31)日臺南至苗栗沿海空曠地區及澎湖、蘭嶼、綠島易有9至10級強陣風,新竹以北、基隆北海岸、東半部沿海空曠地區、臺南至苗栗地區、恆春半島、金門、馬祖亦有較強陣風,請特別注意。*30日0時至31日17時出現較大累積雨量如下:宜蘭縣翠峰湖334.5毫米,臺中市南湖圈谷257.0毫米。*本警報單之颱風半徑為平均半徑,第2號颱風之7級風暴風半徑近似正圓,平均半徑約為280公里。颱風詳細特性請參考本局颱輔助說明(https://www.cwb.gov.tw/Data/typhoon/TY_PDF.pdf)。*此為第2號颱風警報最後一次報告。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        </description>
 | 
					 | 
				
			||||||
        <instruction></instruction>
 | 
					 | 
				
			||||||
        <web>https://www.cwb.gov.tw/V8/C/P/Warning/FIFOWS.html</web>
 | 
					 | 
				
			||||||
        <parameter>
 | 
					 | 
				
			||||||
            <valueName>alert_title</valueName>
 | 
					 | 
				
			||||||
            <value>颱風警報</value>
 | 
					 | 
				
			||||||
        </parameter>
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>基隆市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10017</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>臺北市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>63</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>新北市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>65</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>桃園市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>68</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10018</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>新竹縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10004</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>苗栗縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10005</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>臺中市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>66</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>彰化縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10007</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>雲林縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10009</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>南投縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10008</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>嘉義縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10010</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>嘉義市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10020</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>臺南市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>67</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>高雄市</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>64</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>屏東縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10013</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>宜蘭縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10002</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>花蓮縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10015</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>臺東縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10014</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>澎湖縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>10016</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>金門縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>09020</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
        <area>
 | 
					 | 
				
			||||||
            <areaDesc>連江縣</areaDesc>
 | 
					 | 
				
			||||||
            <geocode>
 | 
					 | 
				
			||||||
                <valueName>Taiwan_Geocode_103</valueName>
 | 
					 | 
				
			||||||
                <value>09007</value>
 | 
					 | 
				
			||||||
            </geocode>
 | 
					 | 
				
			||||||
        </area>
 | 
					 | 
				
			||||||
    </info>
 | 
					 | 
				
			||||||
</alert>
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user