예제 #1
0
        /// <summary>
        /// gis所需墒情数据
        /// </summary>
        /// <param name="subcenter"></param>
        /// <returns></returns>
        public static List <RealTimeMoisture> RealTimeMoisture(int subcenter)
        {
            LNRRDB   ln  = new LNRRDB();
            Maintain mt  = new Maintain();
            DateTime now = DateTime.Now;
            List <RealTimeMoisture> ret      = new List <RealTimeMoisture>();
            List <string>           stations = StationService.ListAllRawIDByTypes(new List <StationTypes> {
                StationTypes.soilStation
            }, subcenter);

            IEnumerable <soildata> records = CurrentService.ListRealSoil(ln, stations);

            // TODO 此处总是报错
            //foreach (string id in stations)
            //{
            //    if (records.Any(i => (i.StationID) == id))
            //    {
            //        soildata s = records.Where(i => (i.StationID) == id).OrderByDescending(r => r.DataTime).First();
            //        RealTimeMoisture temp = new Models.RealTimeMoisture(s);
            //        if (temp != null)
            //            ret.Add(temp);
            //    }
            //}

            return(ret);
        }
예제 #2
0
        /// <summary>
        /// 实时墒情显示
        /// </summary>
        /// <param name="nowTime"></param>
        /// <returns></returns>
        public static List <RealTimeSoil> RealTimeSoil(int subcenter)
        {
            using (LNRRDB ln = new LNRRDB())
            {
                DateTime            now      = DateTime.Now;
                List <RealTimeSoil> ret      = new List <RealTimeSoil>();
                List <string>       stations = StationService.ListAllRawIDByTypes(new List <StationTypes> {
                    StationTypes.soilStation
                }, subcenter);

                IQueryable <soildata> records = CurrentService.ListRealSoil(ln, stations);

                foreach (string id in stations)
                {
                    soildata s;
                    if (records.Any(i => (i.StationID) == id))
                    {
                        s = records.Where(i => (i.StationID) == id).OrderByDescending(r => r.DataTime).First();
                    }
                    else
                    {
                        continue;
                    }
                    RealTimeSoil temp = new Models.RealTimeSoil(s);
                    if (temp != null)
                    {
                        ret.Add(temp);
                    }
                }
                return(ret);
            }
        }
예제 #3
0
 /// <summary>
 /// 删除某条墒情数据
 /// </summary>
 /// <param name="stationid"></param>
 /// <param name="time"></param>
 public static void DeleteHourSoil(string stationid, DateTime time)
 {
     using (LNRRDB ln = new LNRRDB())
     {
         soildata v = new soildata();
         v = ln.soildata.First(i => (i.StationID) == stationid && i.DataTime == time);
         ln.Entry <soildata>(v).State = EntityState.Deleted;
         ln.SaveChanges();
     }
 }
예제 #4
0
        /// <summary>
        /// 获取CS库水情站信息
        /// </summary>
        public static void getHydlStationInfoList()
        {
            LNRRDB ln = new LNRRDB();

            hydlStationInfoList = DAL.StationService.ListHydroStationAll();
            for (int i = 0; i < hydlStationInfoList.Count; i++)
            {
                hydlStationInfoDic[hydlStationInfoList[i].StationID] = hydlStationInfoList[i];
            }
        }
예제 #5
0
 /// <summary>
 /// 修改某条墒情数据gggg
 /// </summary>
 /// <param name="stationid"></param>
 /// <param name="time"></param>
 /// <param name="value"></param>
 public static void AlterHourSoil(string stationid, DateTime time, decimal Voltage10, decimal Voltage20, decimal Voltage40, decimal Moisture10, decimal Moisture20, decimal Moisture40)
 {
     using (LNRRDB ln = new LNRRDB())
     {
         soildata v = new soildata();
         v            = ln.soildata.First(i => (i.StationID) == stationid && i.DataTime == time);
         v.Voltage10  = Voltage10;
         v.Voltage20  = Voltage20;
         v.Voltage40  = Voltage40;
         v.Moisture10 = Moisture10;
         v.Moisture20 = Moisture20;
         v.Moistrue40 = Moisture40;
         ln.SaveChanges();
     }
 }
예제 #6
0
 public static IQueryable <Models.CurrentData> ListRealWater(LNRRDB ln, List <string> stations)
 {
     return(from real in ln.CurrentData where stations.Any(id => id == real.StationID) select real);
 }
예제 #7
0
        /// <summary>
        /// 原始库墒情数据查询
        /// </summary>
        /// <param name="fromTime"></param>
        /// <param name="toTime"></param>
        /// <param name="stationIds"></param>
        /// <returns></returns>
        public static QueryResult ListHourSoil(DateTime fromTime, DateTime toTime, string id)
        {
            //查询为空
            if (id == null)
            {
                return(new QueryResult());
            }

            // //传递得参数
            // Dictionary<string, object> param = new Dictionary<string, object>();
            // //TODO添加datatime转string timeStart timeEnd

            // //查询条件
            // Dictionary<string, string> paramInner = new Dictionary<string, string>();
            // paramInner["stationid"] = id;
            // paramInner["strttime"] = fromTime.ToString();
            // paramInner["endtime"] = toTime.ToString();
            // //返回结果
            // QueryResult result = new QueryResult();
            // List<soildata> soildataList = new List<soildata>();
            // //string suffix = "/subcenter/getSubcenter";
            // string url = "http://127.0.0.1:8088/soildata/getSoildataBS";
            // string jsonStr = HttpHelper.SerializeDictionaryToJsonString(paramInner);
            // param["soildata"] = jsonStr;
            // try
            //  {
            //       string resultJson = HttpHelper.Post(url, param);
            //      //warningInfoList = (List<CEntityWarningInfo>)HttpHelper.JsonToObject(resultJson, new List<CEntityWarningInfo>());
            //      soildataList = (List<soildata>)HttpHelper.JsonDeserialize<List<soildata>>(resultJson, new List<soildata>());
            //  }
            //  catch (Exception e)
            // {
            //            Debug.WriteLine("查询墒情信息失败");
            //     throw e;
            // }
            // //处理数据
            // Station station = StationService.GetStationByRawId(id);
            // TimeRecord record = new TimeRecord { stationId = station.id, stationName = station.stationName, stationType = station.stationType };
            // List<TimeSoil> tsoils = new List<TimeSoil>();
            // foreach (soildata soildata in soildataList)
            // {
            //   TimeSoil timeSoil = new TimeSoil(soildata.DataTime, soildata.Voltage, soildata.Moisture10, soildata.Moisture20, soildata.Moisture40);
            //   timeSoil.time = soildata.DataTime;
            //   timeSoil.Voltage = soildata.Voltage;
            //   timeSoil.Moisture10 = soildata.Moisture10;
            //   timeSoil.Moisture20 = soildata.Moisture20;
            //   timeSoil.Moisture40 = soildata.Moisture40;
            //   tsoils.Add(timeSoil);
            //}
            //record.tsoils = tsoils;
            //record.tsoils = record.tsoils.OrderByDescending(r => r.time).ToList();
            //result.records.Add(record);
            //return result;
            //创建数据库对象
            using (LNRRDB ln = new LNRRDB())
            {
                using (Maintain mt = new Maintain())
                {
                    //获取数据
                    IQueryable <soildata> rainRecord          = ListHourSoil(ln, fromTime, toTime, id);
                    QueryResult           result              = new QueryResult();
                    List <soildata>       singleStationRecord = new List <soildata>();
                    singleStationRecord = rainRecord.Where(r => r.StationID.Equals(id)).OrderByDescending(r => r.DataTime).ToList();
                    Station station = StationService.GetStationByRawId(id);
                    //原始库ID
                    TimeRecord record = new TimeRecord {
                        stationId = station.id, stationName = station.stationName, stationType = station.stationType
                    };
                    foreach (var r in singleStationRecord)
                    {
                        TimeSoil ts = new TimeSoil(r.DataTime, r.Voltage, r.Moisture10, r.Moisture20, r.Moistrue40);
                        record.tsoils.Add(ts);
                    }
                    result.records.Add(record);
                    return(result);
                }
            }
        }
예제 #8
0
 public static IQueryable <Models.soildata> ListHourSoil(LNRRDB ln, DateTime timefrom, DateTime to, string id)
 {
     return(from soildata in ln.soildata where id == soildata.StationID && soildata.DataTime <= to && soildata.DataTime >= timefrom select soildata);
 }
예제 #9
0
 public static IQueryable <Models.soildata> ListRealSoil(LNRRDB ln, List <string> stations)
 {
     return(from real in ln.soildata where stations.Contains(real.StationID) select real);
 }