private static void Compare(SyncFileData syncFileData, SyncDirectory syncDirA, SyncDirectory syncDirB) { var fileInfoHelper = new FileInfoHelper(); var syncFile = syncDirB.SyncFileData.SingleOrDefault(f => f.Name == syncFileData.Name); if (syncFile == null) { fileInfoHelper.Copy(syncFileData, syncDirA, syncDirB); } else { if (syncFileData.Logs.Last().Hash != syncFile.Logs.Last().Hash) { if (syncFileData.Logs.Last().Date > syncFile.Logs.Last().Date) { //fm.Copy(syncDirA, syncDirB, syncFileData); } } else { if (syncFileData.Logs.Last().Date > syncFile.Logs.Last().Date) { // fm.Copy(syncDirB, syncDirA, syncFileData); } } } }
internal void WriteToSyncFile(SyncDirectory syncDirB) { var syncPath = string.Format(@"{0}\{1}", syncDirB.FileInfo.FullName, SynFile); var json = JsonConvert.SerializeObject(syncDirB.SyncFileData); File.WriteAllText(syncPath, json); }
private static void UpdateDirectory(SyncDirectory syncDirA, SyncDirectory syncDirB) { var fm = new FileInfoHelper(); syncDirA.SyncFileData.ToList().ForEach(syncFileData => { Compare(syncFileData, syncDirA, syncDirB); }); fm.WriteToSyncFile(syncDirB); }
public void TestReadAndWrite() { string primaryPath = @"d:\LuceneTests\Primary"; string cachePath = @"d:\LuceneTests\Cache"; var syncDirectory = new SyncDirectory(primaryPath, cachePath); var indexWriterConfig = new IndexWriterConfig( Lucene.Net.Util.LuceneVersion.LUCENE_48, new StandardAnalyzer(Lucene.Net.Util.LuceneVersion.LUCENE_48)); int dog = 0, cat = 0, car = 0; using (var indexWriter = new IndexWriter(syncDirectory, indexWriterConfig)) { for (var iDoc = 0; iDoc < 10000; iDoc++) { var bodyText = GeneratePhrase(40); var doc = new Document { new TextField("id", DateTime.Now.ToFileTimeUtc() + "-" + iDoc, Field.Store.YES), new TextField("Title", GeneratePhrase(10), Field.Store.YES), new TextField("Body", bodyText, Field.Store.YES) }; dog += bodyText.Contains(" dog ") ? 1 : 0; cat += bodyText.Contains(" cat ") ? 1 : 0; car += bodyText.Contains(" car ") ? 1 : 0; indexWriter.AddDocument(doc); } Console.WriteLine("Total docs is {0}, {1} dog, {2} cat, {3} car", indexWriter.NumDocs, dog, cat, car); } try { var ireader = DirectoryReader.Open(syncDirectory); for (var i = 0; i < 100; i++) { var searcher = new IndexSearcher(ireader); var searchForPhrase = SearchForPhrase(searcher, "dog"); Assert.AreEqual(dog, searchForPhrase); searchForPhrase = SearchForPhrase(searcher, "cat"); Assert.AreEqual(cat, searchForPhrase); searchForPhrase = SearchForPhrase(searcher, "car"); Assert.AreEqual(car, searchForPhrase); } Console.WriteLine("Tests passsed"); } catch (Exception x) { Console.WriteLine("Tests failed:\n{0}", x); } finally { //System.IO.Directory.Delete(primaryPath); //System.IO.Directory.Delete(cachePath); } }
private static void Start(string[] args) { var fileHelper = new FileInfoHelper(); var dirs = fileHelper.GetDirectoryInfo(args).ToList(); var syncDirA = new SyncDirectory(dirs.ElementAt(0)); var syncDirB = new SyncDirectory(dirs.ElementAt(1)); var syncMan = new SyncManager(); syncMan.Sync(syncDirA, syncDirB); }
public override int GetHashCode() { unchecked { var hashCode = Filters?.GetHashCode() ?? 0; hashCode = (hashCode * 397) ^ AutoAddFiles.GetHashCode(); hashCode = (hashCode * 397) ^ AutoDeleteFiles.GetHashCode(); hashCode = (hashCode * 397) ^ Recursive.GetHashCode(); hashCode = (hashCode * 397) ^ (WatchDirectory?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (SyncDirectory?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (Delay.GetHashCode()); return(hashCode); } }
internal void Copy(SyncFileData fileToCopy, SyncDirectory fromDirectory, SyncDirectory toDirectory) { var src = Format(fromDirectory, fileToCopy.Name); var dest = Format(toDirectory, fileToCopy.Name); File.Copy(src, dest, true); var syncFileData = SyncFileManager.CreateSyncFileData(dest); var foo = toDirectory.SyncFileData.ToList(); foo.Add(syncFileData); toDirectory.SyncFileData = foo; WriteToSyncFile(toDirectory); }
private static string Format(SyncDirectory fullName, string fileName) { return(string.Format(@"{0}\{1}", fullName.FileInfo.FullName, fileName)); }
internal void Sync(SyncDirectory syncDirA, SyncDirectory syncDirB) { UpdateDirectory(syncDirA, syncDirB); //DoStuff(syncDirB, syncDirA); }