public List <Record> CreateRecordsFromJson() { var URL = @"http://data.wra.gov.tw/Service/OpenData.aspx?id=2D09DB8B-6A1B-485E-88B5-923A462F475C&format=json"; List <Record> result = new List <Record>(); var stationDb = new YC.Repository.StationRepository(); var recordDb = new YC.Repository.RecordRepository(); var jsonString = ""; using (var webClient = new System.Net.WebClient()) { jsonString = webClient.DownloadString(URL); } var stations = stationDb.FindAllStations() .ToDictionary(x => x.ID, x => x); var json = JsonConvert.DeserializeObject <JObject>(jsonString); var jsonDatas = json.Property("RealtimeWaterLevel_OPENDATA").Values().ToList(); jsonDatas.ForEach(item => { var recordObj = item as JObject; var StationIdentifier = recordObj.Property("StationIdentifier").Value.ToString().Trim(); if (!stations.ContainsKey(StationIdentifier)) { return; } var station = stations[StationIdentifier]; var RecordTime = recordObj.Property("RecordTime").Value.ToString().Trim(); var WaterLevel = recordObj.Property("WaterLevel").Value.ToString().Trim(); var recordTime = DateTime.Parse(RecordTime); var waterLevel = double.Parse(WaterLevel); Record newRecord = new Record(); newRecord.CreateTime = DateTime.Now; newRecord.StationID = station.ID; newRecord.RecordTime = recordTime; newRecord.WaterLevel = waterLevel; newRecord.Station = station; //判斷是否已經存在此筆紀錄,不存在時存檔Record並更新Station var isExist = recordDb.IsExist(newRecord); if (!isExist) { station.LastRecordTime = newRecord.RecordTime; station.LastRecordWaterLevel = newRecord.WaterLevel; stationDb.UpdateLastRecord(station); result.Add(newRecord); } }); recordDb.Create(result); return(result); }
// GET: DemoContent public ActionResult IndexMessage() { var stationRepository = new YC.Repository.StationRepository(); var stations = stationRepository.FindAllStations(); var message = string.Format("共收到{0}筆監測站的資料<br/>", stations.Count); stations.ForEach(x => { message += string.Format("站點名稱:{0},地址:{1}<br/>", x.ObservatoryName, x.LocationAddress); }); return(Content(message)); }
public ActionResult Index(string userName = "") { var stationRepository = new YC.Repository.StationRepository(); var stations = stationRepository.FindAllStations(); //var message = string.Format("共收到{0}筆監測站的資料<br/>", stations.Count); //stations.ForEach(x => //{ // message += string.Format("站點名稱:{0},地址:{1}<br/>", x.ObservatoryName, x.LocationAddress); //}); ViewBag.UserName = userName; ViewBag.Stations = stations; return(View(stations)); }
// GET: Station public ActionResult Index(string search = "") { var stationRepository = new YC.Repository.StationRepository(); var stations = stationRepository.FindAllStations(); if (!string.IsNullOrEmpty(search)) { stations = stations .Where(x => x.ObservatoryName.Contains(search) || x.LocationAddress.Contains(search)) .ToList(); } ViewBag.Search = search; //ViewBag.Stations = stations; return(View(stations)); }
static void Main(string[] args) { var import = new YC.Service.ImportService(); var db = new YC.Repository.StationRepository(); //var stations = import.FindStations(@"d:\THBRM.xml"); //stations // .ToList().ForEach(station => //{ // db.Create(station); //}); var stations = db.FindAllStations(); ShowStation(stations); Console.ReadKey(); }