Beispiel #1
0
        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());
            }
        }
Beispiel #3
0
        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);
        }