private void AddEntry(FilelistEntryType type, long filesetid, string path, DateTime time, long blocksetid, string metahash, long metahashsize, System.Data.IDbTransaction transaction) { var fileid = -1L; var metadataid = AddMetadataset(metahash, metahashsize, transaction); if (m_filesetLookup != null) { PathEntryKeeper e; if (m_filesetLookup.TryFind(path, out e)) { fileid = e.GetFilesetID(blocksetid, metadataid); } } else { m_findFilesetCommand.Transaction = transaction; m_findFilesetCommand.SetParameterValue(0, path); m_findFilesetCommand.SetParameterValue(1, blocksetid); m_findFilesetCommand.SetParameterValue(2, metadataid); var r = m_findFilesetCommand.ExecuteScalar(); if (r != null && r != DBNull.Value) { fileid = Convert.ToInt64(r); } } if (fileid < 0) { m_insertFileCommand.Transaction = transaction; m_insertFileCommand.SetParameterValue(0, path); m_insertFileCommand.SetParameterValue(1, blocksetid); m_insertFileCommand.SetParameterValue(2, metadataid); fileid = Convert.ToInt64(m_insertFileCommand.ExecuteScalar()); if (m_filesetLookup != null) { PathEntryKeeper e; if (m_filesetLookup.TryFind(path, out e)) { e.AddFilesetID(blocksetid, metadataid, fileid); } else { e = new PathEntryKeeper(); e.AddFilesetID(blocksetid, metadataid, fileid); m_filesetLookup.Insert(path, e); } } } m_insertFilesetEntryCommand.Transaction = transaction; m_insertFilesetEntryCommand.SetParameterValue(0, filesetid); m_insertFilesetEntryCommand.SetParameterValue(1, fileid); m_insertFilesetEntryCommand.SetParameterValue(2, NormalizeDateTimeToEpochSeconds(time)); m_insertFilesetEntryCommand.ExecuteNonQuery(); }
private void AddEntry(FilelistEntryType type, long filesetid, string path, DateTime time, long blocksetid, string metahash, long metahashsize, System.Data.IDbTransaction transaction) { var fileid = -1L; var metadataid = AddMetadataset(metahash, metahashsize, transaction); if (m_filesetLookup != null) { PathEntryKeeper e; if (m_filesetLookup.TryFind(path, out e)) { fileid = e.GetFilesetID(blocksetid, metadataid); } } else { m_findFilesetCommand.Transaction = transaction; m_findFilesetCommand.SetParameterValue(0, path); m_findFilesetCommand.SetParameterValue(1, blocksetid); m_findFilesetCommand.SetParameterValue(2, metadataid); fileid = m_findFilesetCommand.ExecuteScalarInt64(-1); } if (fileid < 0) { m_insertFileCommand.Transaction = transaction; m_insertFileCommand.SetParameterValue(0, path); m_insertFileCommand.SetParameterValue(1, blocksetid); m_insertFileCommand.SetParameterValue(2, metadataid); fileid = m_insertFileCommand.ExecuteScalarInt64(-1); if (m_filesetLookup != null) { PathEntryKeeper e; if (m_filesetLookup.TryFind(path, out e)) { e.AddFilesetID(blocksetid, metadataid, fileid); } else { e = new PathEntryKeeper(); e.AddFilesetID(blocksetid, metadataid, fileid); m_filesetLookup.Insert(path, e); } } } m_insertFilesetEntryCommand.Transaction = transaction; m_insertFilesetEntryCommand.SetParameterValue(0, filesetid); m_insertFilesetEntryCommand.SetParameterValue(1, fileid); m_insertFilesetEntryCommand.SetParameterValue(2, time.ToUniversalTime().Ticks); m_insertFilesetEntryCommand.ExecuteNonQuery(); }
public void AddMetaEntry(FilelistEntryType type, string name, string metahash, long metasize, string metablockhash, IEnumerable <string> metablocklisthashes) { m_foldercount++; m_writer.WriteStartObject(); m_writer.WritePropertyName("type"); m_writer.WriteValue(type.ToString()); m_writer.WritePropertyName("path"); m_writer.WriteValue(name); if (metahash != null) { WriteMetaProperties(metahash, metasize, metablockhash, metablocklisthashes); } m_writer.WriteEndObject(); }
private void AddFileEntry(FilelistEntryType type, string name, string filehash, long size, DateTime lastmodified, string metahash, long metasize, string metablockhash, string blockhash, long blocksize, IEnumerable <string> blocklisthashes, IEnumerable <string> metablocklisthashes) { m_filecount++; m_writer.WriteStartObject(); m_writer.WritePropertyName("type"); m_writer.WriteValue(type.ToString()); m_writer.WritePropertyName("path"); m_writer.WriteValue(name); m_writer.WritePropertyName("hash"); m_writer.WriteValue(filehash); m_writer.WritePropertyName("size"); m_writer.WriteValue(size); m_writer.WritePropertyName("time"); m_writer.WriteValue(Library.Utility.Utility.SerializeDateTime(lastmodified)); if (metahash != null) { WriteMetaProperties(metahash, metasize, metablockhash, metablocklisthashes); } if (blocklisthashes != null) { //Slightly akward, but we avoid writing if there are no entries using (var en = blocklisthashes.GetEnumerator()) { if (en.MoveNext() && !string.IsNullOrEmpty(en.Current)) { m_writer.WritePropertyName("blocklists"); m_writer.WriteStartArray(); m_writer.WriteValue(en.Current); while (en.MoveNext()) { m_writer.WriteValue(en.Current); } m_writer.WriteEndArray(); } } } else if (!string.IsNullOrWhiteSpace(blockhash)) { m_writer.WritePropertyName("blockhash"); m_writer.WriteValue(blockhash); m_writer.WritePropertyName("blocksize"); m_writer.WriteValue(blocksize); } m_writer.WriteEndObject(); }
public void AddMetaEntry(FilelistEntryType type, string name, string metahash, long metasize) { m_foldercount++; m_writer.WriteStartObject(); m_writer.WritePropertyName("type"); m_writer.WriteValue(type.ToString()); m_writer.WritePropertyName("path"); m_writer.WriteValue(name); if (metahash != null) { m_writer.WritePropertyName("metahash"); m_writer.WriteValue(metahash); m_writer.WritePropertyName("metasize"); m_writer.WriteValue(metasize); } m_writer.WriteEndObject(); }
private void AddFileEntry(FilelistEntryType type, string name, string filehash, long size, DateTime lastmodified, string metahash, long metasize, IEnumerable<string> blocklisthashes) { m_filecount++; m_writer.WriteStartObject(); m_writer.WritePropertyName("type"); m_writer.WriteValue(type.ToString()); m_writer.WritePropertyName("path"); m_writer.WriteValue(name); m_writer.WritePropertyName("hash"); m_writer.WriteValue(filehash); m_writer.WritePropertyName("size"); m_writer.WriteValue(size); m_writer.WritePropertyName("time"); m_writer.WriteValue(Library.Utility.Utility.SerializeDateTime(lastmodified)); if (metahash != null) { m_writer.WritePropertyName("metahash"); m_writer.WriteValue(metahash); m_writer.WritePropertyName("metasize"); m_writer.WriteValue(metasize); } if (blocklisthashes != null) { //Slightly akward, but we avoid writing if there are no entries var en = blocklisthashes.GetEnumerator(); if (en.MoveNext() && !string.IsNullOrEmpty(en.Current)) { m_writer.WritePropertyName("blocklists"); m_writer.WriteStartArray(); m_writer.WriteValue(en.Current); while(en.MoveNext()) m_writer.WriteValue(en.Current); m_writer.WriteEndArray(); } } m_writer.WriteEndObject(); }
public void Add(string path, long size, string hash, long metasize, string metahash, IEnumerable <string> blocklistHashes, FilelistEntryType type, DateTime time) { m_insertCommand.SetParameterValue(0, path); m_insertCommand.SetParameterValue(1, hash == null ? -1: size); m_insertCommand.SetParameterValue(2, hash); m_insertCommand.SetParameterValue(3, metasize); m_insertCommand.SetParameterValue(4, metahash); m_insertCommand.ExecuteNonQuery(); }
public void Add(string path, long size, string hash, long metasize, string metahash, IEnumerable<string> blocklistHashes, FilelistEntryType type, DateTime time) { m_insertCommand.SetParameterValue(0, path); m_insertCommand.SetParameterValue(1, hash == null ? - 1: size); m_insertCommand.SetParameterValue(2, hash); m_insertCommand.SetParameterValue(3, metasize); m_insertCommand.SetParameterValue(4, metahash); m_insertCommand.ExecuteNonQuery(); }