Exemplo n.º 1
0
        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);
                    }
                }
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        private static void UpdateDirectory(SyncDirectory syncDirA, SyncDirectory syncDirB)
        {
            var fm = new FileInfoHelper();

            syncDirA.SyncFileData.ToList().ForEach(syncFileData => { Compare(syncFileData, syncDirA, syncDirB); });

            fm.WriteToSyncFile(syncDirB);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 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);
     }
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 private static string Format(SyncDirectory fullName, string fileName)
 {
     return(string.Format(@"{0}\{1}", fullName.FileInfo.FullName, fileName));
 }
Exemplo n.º 9
0
        internal void Sync(SyncDirectory syncDirA, SyncDirectory syncDirB)
        {
            UpdateDirectory(syncDirA, syncDirB);

            //DoStuff(syncDirB, syncDirA);
        }