/// <summary> /// 获取录像 /// </summary> /// <param name="start">开始时间</param> /// <param name="end">结束时间</param> /// <param name="page">页码</param> /// <param name="count">数量</param> /// <returns>录像列表</returns> public static List <Recording> GetRecordings(DateTime start, DateTime end, int page, int count) { try { using (var db = new RepositoyContext()) { if ((start == null) || (end == null)) { return(db.Set <Recording>() .Where(r => r.startTime >= start) .Where(r => r.startTime <= end) .OrderByDescending(r => r.startTime) .Skip((page - 1) * count).Take(count) .ToList()); } else { return(db.Set <Recording>() .OrderByDescending(r => r.startTime) .Skip((page - 1) * count).Take(count) .ToList()); } } } catch (Exception e) { Tracker.LogE(e); return(null); } }
/// <summary> /// 批量删除录像 /// </summary> /// <param name="ids">索引列表</param> /// <returns>是否成功</returns> public static bool DeleteRecordings(List <int> ids) { try { using (var db = new RepositoyContext()) { var recordings = db.Set <Recording>().Where(r => ids.Contains(r.id)).ToList(); db.Set <Recording>().RemoveRange(recordings); db.SaveChanges(); return(true); } } catch (Exception e) { Tracker.LogE(e); return(false); } }
/// <summary> /// 添加录像 /// </summary> /// <param name="recording">录像</param> /// <returns>是否成功</returns> public static bool AddRecording(Recording recording) { try { using (var db = new RepositoyContext()) { db.Set <Recording>().Add(recording); db.SaveChanges(); } return(true); } catch (Exception e) { Tracker.LogE(e); return(false); } }
/// <summary> /// 批量删除告警 /// </summary> /// <param name="ids">索引列表</param> /// <returns>是否成功</returns> public static bool DeleteAlarms(List <int> ids) { try { using (var db = new RepositoyContext()) { var alarms = db.Set <Alarm>().Where(a => ids.Contains(a.id)).ToList(); db.Set <Alarm>().RemoveRange(alarms); db.SaveChanges(); return(true); } } catch (Exception e) { Tracker.LogE(e); return(false); } }
/// <summary> /// 添加告警 /// </summary> /// <param name="alarm">告警</param> /// <returns>是否成功</returns> public static bool AddAlarm(Alarm alarm) { try { using (var db = new RepositoyContext()) { db.Set <Alarm>().Add(alarm); db.SaveChanges(); } return(true); } catch (Exception e) { Tracker.LogE(e); return(false); } }
/// <summary> /// 获取未删除录像 /// </summary> /// <param name="count">数量</param> /// <returns>录像列表</returns> public static List <Recording> GetExistsRecordings(int count) { try { using (var db = new RepositoyContext()) { return(db.Set <Recording>() .Where(r => r.deleted == false) .OrderByDescending(a => a.startTime) .Take(count) .ToList()); } } catch (Exception e) { Tracker.LogE(e); return(null); } }
/// <summary> /// 获取最新告警 /// </summary> /// <param name="start">开始时间</param> /// <param name="end">结束时间</param> /// <param name="count">数量</param> /// <returns>告警列表</returns> public static List <Alarm> GetLastAlarms(DateTime start, DateTime end, int count) { try { using (var db = new RepositoyContext()) { return(db.Set <Alarm>() .Where(a => a.startTime >= start) .Where(a => a.startTime <= end) .OrderByDescending(a => a.startTime) .Take(count).ToList()); } } catch (Exception e) { Tracker.LogE(e); return(null); } }
/// <summary> /// 更新录像 /// </summary> /// <param name="recording">录像</param> /// <returns>是否成功</returns> public static bool UpdateRecording(Recording recording) { try { using (var db = new RepositoyContext()) { var dst = db.Set <Recording>().FirstOrDefault(a => a.id == recording.id); if (dst == null) { return(false); } MethodUtils.CopyProperties(recording, ref dst); db.SaveChanges(); } return(true); } catch (Exception e) { Tracker.LogE(e); return(false); } }
/// <summary> /// 获取录像数量 /// </summary> /// <param name="start">开始时间</param> /// <param name="end">结束时间</param> /// <returns>录像数量</returns> public static int GetRecordingsCount(DateTime start, DateTime end) { try { using (var db = new RepositoyContext()) { if ((start != null) && (end != null)) { return(db.Set <Recording>() .Where(r => r.startTime >= start) .Where(r => r.startTime <= end) .Count()); } else { return(db.Set <Recording>().Count()); } } } catch (Exception e) { Tracker.LogE(e); return(0); } }