public void WriteRename(RenamedEventArgs objIn, NotifyFilters filters)
        {
            if (objIn == null)
            {
                return;
            }

            if (IsInvalidFile(objIn.FullPath))
            {
                return;
            }

            var ToWrite = new FileMonitorObject(objIn.FullPath)
            {
                ResultType       = RESULT_TYPE.FILEMONITOR,
                ChangeType       = ChangeTypeStringToChangeType(objIn.ChangeType.ToString()),
                OldPath          = objIn.OldFullPath,
                Name             = objIn.Name,
                OldName          = objIn.OldName,
                Timestamp        = DateTime.Now.ToString("O", CultureInfo.InvariantCulture),
                FileSystemObject = fsc.FilePathToFileSystemObject(objIn.FullPath),
                NotifyFilters    = filters
            };

            changeHandler(ToWrite);
        }
        private void WriteChange(FileSystemEventArgs objIn, NotifyFilters filters)
        {
            if (objIn != null)
            {
                if (IsInvalidFile(objIn.FullPath))
                {
                    return;
                }

                // If we are gathering extended details LastAccess times aren't meaningful since we
                // will trigger them Instead we note they are gathered and clean up in StopRun
                if (!options.FileNamesOnly && filters.HasFlag(NotifyFilters.LastAccess))
                {
                    filesAccessed.TryAdd(objIn.FullPath, objIn);
                }
                else
                {
                    // We skip gathering extended information when The File was Deleted We are set
                    // to gather names only
                    var fso     = (objIn.ChangeType == WatcherChangeTypes.Deleted || options.FileNamesOnly) ? null : fsc.FilePathToFileSystemObject(objIn.FullPath);
                    var ToWrite = new FileMonitorObject(objIn.FullPath)
                    {
                        ResultType       = RESULT_TYPE.FILEMONITOR,
                        ChangeType       = ChangeTypeStringToChangeType(objIn.ChangeType.ToString()),
                        Name             = objIn.Name,
                        Timestamp        = DateTime.Now.ToString("O", CultureInfo.InvariantCulture),
                        FileSystemObject = fso,
                        NotifyFilters    = filters
                    };

                    changeHandler(ToWrite);
                }
            }
        }
        public static void WriteFileMonitor(FileMonitorObject obj, string RunId)
        {
            using var cmd = new SqliteCommand(SQL_INSERT, Connection, Transaction);
            cmd.Parameters.AddWithValue("@run_id", RunId);
            cmd.Parameters.AddWithValue("@path", obj.Path);
            cmd.Parameters.AddWithValue("@timestamp", obj.Timestamp);
            cmd.Parameters.AddWithValue("@serialized", JsonConvert.SerializeObject(obj));

            cmd.ExecuteNonQuery();
        }
        public static void WriteFileMonitor(FileMonitorObject fmo, string RunId)
        {
            if (fmo == null)
            {
                return;
            }
            using var cmd = new SQLiteCommand(SQL_INSERT, Connection, Transaction);
            cmd.Parameters.AddWithValue("@run_id", RunId);
            cmd.Parameters.AddWithValue("@path", fmo.Path);
            cmd.Parameters.AddWithValue("@timestamp", fmo.Timestamp);
            cmd.Parameters.AddWithValue("@serialized", JsonSerializer.Serialize(fmo));

            cmd.ExecuteNonQuery();
        }
        public static void WriteFileMonitor(FileMonitorObject fmo, string RunId)
        {
            if (fmo == null)
            {
                return;
            }
            _             = MainConnection ?? throw new NullReferenceException(Strings.Get("MainConnection"));
            using var cmd = new SqliteCommand(SQL_INSERT, MainConnection.Connection, MainConnection.Transaction);
            cmd.Parameters.AddWithValue("@run_id", RunId);
            cmd.Parameters.AddWithValue("@path", fmo.Path);
            cmd.Parameters.AddWithValue("@timestamp", fmo.Timestamp);
            cmd.Parameters.AddWithValue("@serialized", JsonConvert.SerializeObject(fmo));

            cmd.ExecuteNonQuery();
        }
示例#6
0
        public void WriteChange(FileSystemEventArgs objIn)
        {
            if (objIn != null)
            {
                var ToWrite = new FileMonitorObject(objIn.FullPath)
                {
                    ResultType = RESULT_TYPE.FILEMONITOR,
                    ChangeType = ChangeTypeStringToChangeType(objIn.ChangeType.ToString()),
                    Name       = objIn.Name,
                    Timestamp  = DateTime.Now.ToString("O", CultureInfo.InvariantCulture)
                };

                DatabaseManager.WriteFileMonitor(ToWrite, RunId);
            }
        }
示例#7
0
        public void WriteRename(RenamedEventArgs objIn)
        {
            if (objIn == null)
            {
                return;
            }

            var ToWrite = new FileMonitorObject(objIn.FullPath)
            {
                ResultType = RESULT_TYPE.FILEMONITOR,
                ChangeType = ChangeTypeStringToChangeType(objIn.ChangeType.ToString()),
                OldPath    = objIn.OldFullPath,
                Name       = objIn.Name,
                OldName    = objIn.OldName,
                Timestamp  = DateTime.Now.ToString("O", CultureInfo.InvariantCulture)
            };

            DatabaseManager.WriteFileMonitor(ToWrite, RunId);
        }
        public override void StopRun()
        {
            watchers.ForEach(x => x.EnableRaisingEvents = false);

            // Write each accessed file once.
            foreach (var e in filesAccessed)
            {
                var ToWrite = new FileMonitorObject(e.Value.FullPath)
                {
                    ResultType       = RESULT_TYPE.FILEMONITOR,
                    ChangeType       = ChangeTypeStringToChangeType(e.Value.ChangeType.ToString()),
                    Name             = e.Value.Name,
                    Timestamp        = DateTime.Now.ToString("O", CultureInfo.InvariantCulture),
                    FileSystemObject = fsc.FilePathToFileSystemObject(e.Value.FullPath),
                    NotifyFilters    = NotifyFilters.LastAccess
                };
                changeHandler(ToWrite);
            }

            RunStatus = RUN_STATUS.COMPLETED;
        }