예제 #1
0
        private void WriteEntries(IEnumerable <Entry> entries, SqliteConnection connection, int maxId, ref DateTime min, ref DateTime max)
        {
            using (var transaction = connection.BeginTransaction())
            {
                foreach (var e in entries)
                {
                    StoryTable.Write(e, connection, transaction);

                    if (e.Date > max)
                    {
                        max = e.Date;
                    }

                    if (e.Date < min)
                    {
                        min = e.Date;
                    }
                }

                DateRangeTable.Write(min, max, connection, transaction);
                LastWriteTable.Write(maxId, connection, transaction);

                transaction.Commit();
            }
        }
예제 #2
0
        private static void WriteFileIntoDatabase(string filename, SQLiteConnection connection, DataTrackers trackers)
        {
            using (var file = File.OpenRead(filename))
                using (var reader = new BinaryReader(file))
                {
                    while (file.Position < file.Length)
                    {
                        var entry = EntryExtensions.Read(reader);

                        trackers.Update(entry);

                        StoryTable.Write(entry, connection);
                    }
                }
        }