Example #1
0
        public void RoyaltyWorker_Watcher()
        {
            SqlLogEnabled = false;
            try
            {
                var storage = new FileStorage();
                storage.Log += (s, e) => Console.WriteLine("[FILESTORAGE] {0}", e);

                var storeFolder = "D:\\filestorage.import.main";

                var a = Rep.GetAccount(defAccountName, eagerLoad: new string[] { "Settings" });
                var f = Rep.AccountSettingsImportDirectoryNew(a.Settings, new { Path = storeFolder, Filter = "*.csv", ForAnalize = true, DeleteFileAfterImport = true });
                Rep.SaveChanges();

                var itemsInQueueBeforeTest = a.ImportQueue.Count;

                using (var watcher = new RoyaltyWatcher(GetNewRepository, storage))
                {
                    watcher.OnQueueRecordAdded += (s, e) => Console.WriteLine("[WATCHER:RECORD_ADDED] {0}", e);
                    watcher.Log += (s, e) => Console.WriteLine("[WATCHER] {0}", e);
                    System.IO.File.WriteAllLines(System.IO.Path.Combine(storeFolder, "test.csv"), GenerateCSVData(100));
                    watcher.RunOnce();
                }

                var newRecordCount = Rep.ImportQueueRecordGet().Where(i => i.Account.AccountUID == a.AccountUID).Count();
                Assert.AreNotEqual(itemsInQueueBeforeTest, newRecordCount, "Count must not equals");
            }
            finally
            {
                SqlLogEnabled = true;
            }
        }
Example #2
0
        public void RoyaltyWorker_Worker()
        {
            SqlLogEnabled = false;
            try
            {
                var storeFolder = "D:\\filestorage.import.main";
                var exportFolder = "D:\\export";

                var storage = new FileStorage();
                storage.Log += (s, e) => Console.WriteLine("[FILESTORAGE] {0}", e);

                var a = Rep.GetAccount(defAccountName, eagerLoad: new string[] { "Settings" });
                a.Settings.IgnoreExportTime = TimeSpan.FromTicks(0);
                var f = Rep.AccountSettingsImportDirectoryNew(a.Settings, new { Path = storeFolder, Filter = "*.csv", ForAnalize = true, DeleteFileAfterImport = true, Encoding = Encoding.UTF8 });
                var ef = Rep.AccountSettingsExportDirectoryNew(a.Settings, new { DirectoryPath = exportFolder, Encoding = Encoding.UTF8 });
                Rep.SaveChanges();

                using (var watcher = new RoyaltyWatcher(() => GetNewRepository(), storage))
                {
                    watcher.OnQueueRecordAdded += (s, e) => Console.WriteLine("[WATCHER:RECORD_ADDED] {0}", e);
                    watcher.Log += (s, e) => Console.WriteLine("[WATCHER:LOG] {0}", e);
                    System.IO.File.WriteAllLines(System.IO.Path.Combine(storeFolder, "test1.csv"), GenerateCSVData(100), f.Encoding);
                    System.IO.File.WriteAllLines(System.IO.Path.Combine(storeFolder, "test2.csv"), GenerateCSVData(100), f.Encoding);
                    System.IO.File.WriteAllLines(System.IO.Path.Combine(storeFolder, "test3.csv"), GenerateCSVData(100), f.Encoding);
                    watcher.RunOnce();
                }

                bool workerStarted = false;
                using (var worker = new RoyaltyWorker(() => GetNewRepository(), storage))
                {
                    worker.Log += (s, e) => Console.WriteLine("[WORKER:LOG] {0}", e);
                    worker.WorkerStateChanged += (s, e) =>
                    {
                        workerStarted = true;
                        Console.WriteLine("[WORKER:{0}] progress: {1}", e.Action, e.Element.Progress);
                    };
                    worker.RunOnce();
                }

                Assert.AreEqual(true, workerStarted, "Worker must started");
            }
            finally
            {
                SqlLogEnabled = true;
            }
        }