Пример #1
0
        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();
                }
            }
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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);
         }
     }
 }