Exemplo n.º 1
0
        private BaseWatcher MonitoringAux(string watchType, BaseWatchingObject watchingObject)
        {
            BaseWatcher baseWatcher = null;

            switch (watchType)
            {
            case "file":
                WatchingFileObject watchingFileObject = (WatchingFileObject)watchingObject;
                string             path     = watchingFileObject.GetPath();
                string             fileName = watchingFileObject.GetFileName();
                baseWatcher = new FileWatcher(watchingFileObject.GetWatchId(), path, "*." + watchingFileObject.GetFileType(), fileName, new FileInfo(path + "\\" + fileName).Length);

                if (fileName.Equals("watcher.config"))
                {
                    ((FileWatcher)baseWatcher).ConfigFileUpdated += MainConfigFileUpdated;
                }

                break;

            case "database":
                WatchingDatabaseObject watchingDataObject = (WatchingDatabaseObject)watchingObject;
                baseWatcher = new DatabaseWatcher(watchingDataObject.GetWatchId(), watchingDataObject.GetDataSource(), watchingDataObject.GetDatabaseName(), watchingDataObject.GetUserId());
                break;
            }

            return(baseWatcher);
        }
Exemplo n.º 2
0
        public void MainConfigFileUpdated(object sender, EventArgs e)
        {
            BaseWatchingObject watchingObejct = PopulatingWatchingListAux((XmlNode)sender);
            BaseWatcher        baseWatcher    = MonitoringAux(watchingObejct.GetWatchType(), watchingObejct);

            baseWatcher.Start();

            Object locker = new Object();

            lock (locker)
            {
                _threadList.Add(baseWatcher);
            }

            Console.WriteLine($"e type: {((FileSystemEventArgs)e).ChangeType}, Initiating one more watcher({watchingObejct.GetWatchType()})....");
        }
Exemplo n.º 3
0
        private BaseWatchingObject PopulatingWatchingListAux(XmlNode watcher)
        {
            watcher = watcher.NodeType.ToString().Equals("Document") ? ((XmlDocument)watcher).GetElementsByTagName("watcher").Item(0) : watcher;
            string watchType = watcher.Attributes["watchType"].Value;
            int    watchId   = -1;

            Int32.TryParse(watcher.Attributes["watchId"].Value, out watchId);
            BaseWatchingObject watchingObject = null;

            if (watchType.Equals("file"))
            {
                watchingObject = new WatchingFileObject(watchType, watchId, watcher.Attributes["fileType"].Value, watcher.Attributes["name"].Value, watcher.Attributes["path"].Value);
            }
            else if (watchType.Equals("database"))
            {
                watchingObject = new WatchingDatabaseObject(watchType, watchId, watcher.Attributes["dataSource"].Value, watcher.Attributes["databaseName"].Value, watcher.Attributes["userId"].Value);
            }
            return(watchingObject);
        }