private static void recomputeYesterday(FileAssetType file_type) { var label_id = (file_type == FileAssetType.image) ? Settings.Default.LabelPhotoYesterday : Settings.Default.LabelVideoYesterday; var yes_start = DateTime.Now.AddDays(-1.0).TrimToDay(); var yes_end = DateTime.Now.TrimToDay(); using (var db = new MyDbContext()) { var actual = (from f in db.Object.Files where f.event_time >= yes_start && f.event_time < yes_end && f.type == (int)file_type select f.file_id).Union( from f in db.Object.PendingFiles where f.event_time >= yes_start && f.event_time < yes_end && f.type == (int)file_type select f.file_id ).ToList(); var current = (from f in db.Object.LabelFiles where f.label_id == label_id select f).ToList(); var areCurrentAndActualIdentical = actual.Count == current.Count && actual.TrueForAll(x => current.Where(y => y.file_id == x).Any()); if (!areCurrentAndActualIdentical) { foreach (var cur in current) { db.Object.LabelFiles.Remove(cur); } foreach (var act in actual) { db.Object.LabelFiles.Add(new LabeledFile { file_id = act, label_id = label_id }); } var lbRecord = (from lb in db.Object.Labels where lb.label_id == label_id select lb).First(); lbRecord.seq = SeqNum.GetNextSeq(); db.Object.SaveChanges(); } } }
private void showFile(Guid file_id, string file_name, FileAssetType type, string dev, string dev_id) { try { this.filename.Text = file_name; this.Text = string.Format(Resources.ProgressTooltip, dev); this.currDeviceId = dev_id; PendingFile file = null; using (var db = new MyDbContext()) { var q = from f in db.Object.PendingFiles where f.file_id == file_id select f; file = q.FirstOrDefault(); } if (file == null) { return; } if (type == FileAssetType.image) { pictureBox1.ImageLocation = Path.Combine(MyFileFolder.Photo, ".pending", file.saved_path); } else { pictureBox1.Image = Resources.video; } Show(); } catch (Exception err) { log4net.LogManager.GetLogger(GetType()).Warn(err.ToString()); } }
private static List <Guid> computeLabeledFiles(SQLiteConnection conn, DateTime yesterdayStart, DateTime yesterdayEnd, FileAssetType type) { var fileIds = new List <Guid>(); using (var cmd = conn.CreateCommand()) { cmd.CommandText = "select file_id from Files where event_time >= @yes_start and event_time < @today and [type] = @type union " + "select file_id from PendingFiles where event_time >= @yes_start and event_time < @today and [type] = @type"; cmd.Parameters.Add(new SQLiteParameter("@yes_start", yesterdayStart)); cmd.Parameters.Add(new SQLiteParameter("@today", yesterdayEnd)); cmd.Parameters.Add(new SQLiteParameter("@type", (object)(int)type)); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { fileIds.Add(reader.GetGuid(0)); } } } return(fileIds); }