コード例 #1
0
        public void WriteRename(RenamedEventArgs obj)
        {
            var evt = new FileMonitorEvent()
            {
                ChangeType = ChangeTypeToChangeType(obj.ChangeType),
                Path       = obj.FullPath,
                Name       = obj.Name,
                OldPath    = obj.OldFullPath,
                OldName    = obj.OldName
            };

            string timestamp = DateTime.Now.ToString("O");

            var cmd = new SqliteCommand(SQL_INSERT, DatabaseManager.Connection, DatabaseManager.Transaction);

            cmd.Parameters.AddWithValue("@run_id", this.runId);
            cmd.Parameters.AddWithValue("@row_key", CryptoHelpers.CreateHash(obj.ToString() + timestamp + watcher.NotifyFilter.ToString() + obj.ChangeType.ToString()));
            cmd.Parameters.AddWithValue("@timestamp", timestamp);
            cmd.Parameters.AddWithValue("@path", obj.FullPath);
            cmd.Parameters.AddWithValue("@old_path", obj.OldFullPath ?? "");
            cmd.Parameters.AddWithValue("@name", obj.Name ?? "");
            cmd.Parameters.AddWithValue("@old_name", obj.OldName ?? "");
            cmd.Parameters.AddWithValue("@change_type", ChangeTypeToChangeType(obj.ChangeType));
            cmd.Parameters.AddWithValue("@extended_results", "");
            cmd.Parameters.AddWithValue("@notify_filters", watcher.NotifyFilter.ToString());
            cmd.Parameters.AddWithValue("@serialized", JsonConvert.SerializeObject(evt));

            cmd.ExecuteNonQuery();
        }
コード例 #2
0
        public void WriteChange(FileSystemEventArgs objIn, string details)
        {
            if (objIn != null)
            {
                var evt = new FileMonitorEvent()
                {
                    ChangeType = ChangeTypeToChangeType(objIn.ChangeType),
                    Path       = objIn.FullPath,
                    Name       = objIn.Name
                };
                string timestamp = DateTime.Now.ToString("O", CultureInfo.InvariantCulture);

                using var cmd = new SqliteCommand(SQL_INSERT, DatabaseManager.Connection, DatabaseManager.Transaction);
                cmd.Parameters.AddWithValue("@run_id", this.RunId);
                cmd.Parameters.AddWithValue("@row_key", CryptoHelpers.CreateHash(objIn.ToString() + timestamp + watcher.NotifyFilter.ToString() + objIn.ChangeType.ToString()));
                cmd.Parameters.AddWithValue("@timestamp", timestamp);
                cmd.Parameters.AddWithValue("@path", objIn.FullPath);
                cmd.Parameters.AddWithValue("@old_path", "");
                cmd.Parameters.AddWithValue("@name", objIn.Name);
                cmd.Parameters.AddWithValue("@old_name", "");
                cmd.Parameters.AddWithValue("@change_type", ChangeTypeToChangeType(objIn.ChangeType));
                cmd.Parameters.AddWithValue("@extended_results", details);
                cmd.Parameters.AddWithValue("@notify_filters", watcher.NotifyFilter.ToString());
                cmd.Parameters.AddWithValue("@serialized", JsonConvert.SerializeObject(evt));

                cmd.ExecuteNonQuery();
            }
        }
コード例 #3
0
ファイル: FileMonitor.cs プロジェクト: f-spot/f-spot-xplat
        protected virtual void OnChanged(File file, File other_file, FileMonitorEvent event_type)
        {
            GLib.Value ret             = GLib.Value.Empty;
            var        inst_and_params = new GLib.ValueArray(4);
            var        vals            = new GLib.Value [4];

            vals [0] = new GLib.Value(this);
            inst_and_params.Append(vals [0]);
            vals [1] = new GLib.Value(file);
            inst_and_params.Append(vals [1]);
            vals [2] = new GLib.Value(other_file);
            inst_and_params.Append(vals [2]);
            vals [3] = new GLib.Value(event_type);
            inst_and_params.Append(vals [3]);
            g_signal_chain_from_overridden(inst_and_params.ArrayPtr, ref ret);
            foreach (GLib.Value v in vals)
            {
                v.Dispose();
            }
        }
コード例 #4
0
		public DesktopFileChangedEventArgs (FileMonitorEvent evnt, File file, File otherFile)
		{
			Event = evnt;
			File = file;
			OtherFile = otherFile;
		}
コード例 #5
0
 public DesktopFileChangedEventArgs(FileMonitorEvent evnt, File file, File otherFile)
 {
     Event     = evnt;
     File      = file;
     OtherFile = otherFile;
 }
コード例 #6
0
ファイル: FileMonitor.cs プロジェクト: f-spot/f-spot-xplat
 public void EmitEvent(File child, File other_file, FileMonitorEvent event_type)
 {
     g_file_monitor_emit_event(Handle, child == null ? IntPtr.Zero : child.Handle, other_file == null ? IntPtr.Zero : other_file.Handle, (int)event_type);
 }