Example #1
0
        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));
        }
Example #5
0
        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();
        }