public void SaveRunStatus() { { var gp = db.Alarms .Include(x => x.StatusInfo) .OrderBy(x => x.Time) .GroupBy(x => x.StatusInfo.StationId).Select(g => g.Last()).ToList(); foreach (var item in _items) { var status = item.Service1.Status; if (status.StatusInfoId != -1) { var sId = status.StatusInfo.StationId; if (gp.Any(x => x.StatusInfo.StationId == sId)) { var c = gp.Single(x => x.StatusInfo.StationId == sId); if (c.StatusInfoId == status.StatusInfoId && c.Time == status.Time) { c.Span = status.Span; continue; } } db.Alarms.Add(new StatusDto { Time = status.Time, Span = status.Span, StatusInfoId = status.StatusInfoId }); } } } if (OeedbContext.DbMutex.WaitOne(100)) { try { db.SaveChanges(); } catch (Exception EX) { _event.PostError(EX.StackTrace); } finally { OeedbContext.DbMutex.ReleaseMutex(); } } }
private void LoadAlarmInfos(int stationId) { try { using (var db = new OeedbContext()) { var q = db.AlarmInfos.Where(x => x.StationId == stationId); if (q.Any()) { alarmInfo.AddRange(q); if (alarmInfo.Any(x => x.AlarmContent == "运行中")) { _runid = alarmInfo.Find(x => x.AlarmContent == "运行中").AlarmIndex; } } } } catch (Exception ex) { events.PostError(ex.Message); } }
public void Load(string FilePath = DEFAULT_PATH) { lock (_enable) { if (!File.Exists(FilePath)) { return; } var str = File.ReadAllText(FilePath); try { var obj = JsonConvert.DeserializeObject <IEnumerable <VAR> >(str); DataValues.Clear(); foreach (var a in obj) { DataValues.Add(a); } } catch (Exception ex) { _events.PostError(ex); } } }