| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -21,6 +21,9 @@ using WebSocket4Net;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					using System.IO;
 | 
					 | 
					 | 
					 | 
					using System.IO;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					using System.Text.Encodings.Web;
 | 
					 | 
					 | 
					 | 
					using System.Text.Encodings.Web;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					using System.Text.Unicode;
 | 
					 | 
					 | 
					 | 
					using System.Text.Unicode;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					using static System.Windows.Forms.Design.AxImporter;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					using System.Net.Sockets;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					using System.Security.Policy;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					namespace Txgy.FilesWatcher.ViewModels
 | 
					 | 
					 | 
					 | 
					namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -42,9 +45,45 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private void WebSocket4Net_MessageReceived(string message)
 | 
					 | 
					 | 
					 | 
					        private void WebSocket4Net_MessageReceived(string message)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        {
 | 
					 | 
					 | 
					 | 
					        {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            Debug.WriteLine($"服务端回复数据:{message}!");
 | 
					 | 
					 | 
					 | 
					            Debug.WriteLine($"服务端回复数据:{message}!");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if(message == "sigin")
 | 
					 | 
					 | 
					 | 
					            using (JsonDocument document = JsonDocument.Parse(message))
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            {
 | 
					 | 
					 | 
					 | 
					            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                MessageBox.Show("登录成功");
 | 
					 | 
					 | 
					 | 
					                JsonElement root = document.RootElement;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (root.TryGetProperty("type", out JsonElement dataElement))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    string type = dataElement.ToString();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    switch (type)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        case CSMessage.sigin:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        var user= JsonSerializer.Deserialize<SCUserSigin>(message, new JsonSerializerOptions
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                // 整齐打印
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                WriteIndented = true,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                //重新编码,解决中文乱码问题
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            });
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        case CSMessage.subscribe:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                           var sub= JsonSerializer.Deserialize<SCUserSubscribeMessage>(message, new JsonSerializerOptions
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                // 整齐打印
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                WriteIndented = true,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                //重新编码,解决中文乱码问题
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            });
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        case CSMessage.publish:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            var publish = JsonSerializer.Deserialize<SCDevicePublish>(message, new JsonSerializerOptions
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                // 整齐打印
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                WriteIndented = true,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                //重新编码,解决中文乱码问题
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            });
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            default:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        void WebSocket_Error(SuperSocket.ClientEngine.ErrorEventArgs e)
 | 
					 | 
					 | 
					 | 
					        void WebSocket_Error(SuperSocket.ClientEngine.ErrorEventArgs e)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -105,14 +144,14 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            get { return isIndeterminate; }
 | 
					 | 
					 | 
					 | 
					            get { return isIndeterminate; }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            set { SetProperty(ref isIndeterminate, value); }
 | 
					 | 
					 | 
					 | 
					            set { SetProperty(ref isIndeterminate, value); }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private string account;
 | 
					 | 
					 | 
					 | 
					        private string account="admin";
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        public string Account
 | 
					 | 
					 | 
					 | 
					        public string Account
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        {
 | 
					 | 
					 | 
					 | 
					        {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            get { return account; }
 | 
					 | 
					 | 
					 | 
					            get { return account; }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            set { SetProperty(ref account, value); }
 | 
					 | 
					 | 
					 | 
					            set { SetProperty(ref account, value); }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private string password;
 | 
					 | 
					 | 
					 | 
					        private string password="123";
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        public string Password
 | 
					 | 
					 | 
					 | 
					        public string Password
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        {
 | 
					 | 
					 | 
					 | 
					        {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -158,9 +197,9 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //设置监听文件类型
 | 
					 | 
					 | 
					 | 
					            //设置监听文件类型
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            watcher.Filter = fileFilter;
 | 
					 | 
					 | 
					 | 
					            watcher.Filter = fileFilter;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //设置是否监听子目录
 | 
					 | 
					 | 
					 | 
					            //设置是否监听子目录
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            watcher.IncludeSubdirectories = true;
 | 
					 | 
					 | 
					 | 
					           // watcher.IncludeSubdirectories = false;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //设置是否启用监听
 | 
					 | 
					 | 
					 | 
					            //设置是否启用监听
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //  watcher.EnableRaisingEvents = false;
 | 
					 | 
					 | 
					 | 
					            watcher.EnableRaisingEvents = false;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            watcher.EndInit();
 | 
					 | 
					 | 
					 | 
					            watcher.EndInit();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -185,6 +224,7 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            timer1.Start();
 | 
					 | 
					 | 
					 | 
					            timer1.Start();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            timer1.Tick += timer1_Tick;
 | 
					 | 
					 | 
					 | 
					            timer1.Tick += timer1_Tick;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            IsIndeterminate = true;
 | 
					 | 
					 | 
					 | 
					            IsIndeterminate = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            _websocketClient.SendMes(JsonSerializer.Serialize(new CSUserSubscribeMessage { type = CSMessage.subscribe }));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private void Stop()
 | 
					 | 
					 | 
					 | 
					        private void Stop()
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -192,6 +232,8 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            WatchStartOrSopt(false);
 | 
					 | 
					 | 
					 | 
					            WatchStartOrSopt(false);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            timer1.Stop();
 | 
					 | 
					 | 
					 | 
					            timer1.Stop();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            IsIndeterminate = false;
 | 
					 | 
					 | 
					 | 
					            IsIndeterminate = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            _websocketClient.SendMes(JsonSerializer.Serialize(new CSUserSubscribeMessage { type = CSMessage.unsubscribe }));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        public DelegateCommand FilePathSaveCommand => new(() =>
 | 
					 | 
					 | 
					 | 
					        public DelegateCommand FilePathSaveCommand => new(() =>
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -254,24 +296,30 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        {
 | 
					 | 
					 | 
					 | 
					        {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					        DateTime lastRead = DateTime.MinValue;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private void Watcher_Changed(object sender, System.IO.FileSystemEventArgs e)
 | 
					 | 
					 | 
					 | 
					        private void Watcher_Changed(object sender, System.IO.FileSystemEventArgs e)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        {
 | 
					 | 
					 | 
					 | 
					        {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            Application.Current.Dispatcher.BeginInvoke(new Action(() => {
 | 
					 | 
					 | 
					 | 
					        //    DateTime dt = DateTime.Now;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					           // string tmp = dt.Hour.ToString() + "时" + dt.Minute.ToString() + "分" + dt.Second.ToString() + "秒" + dt.Millisecond.ToString() + "毫秒,目录发生变化\r\n";
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                DateTime dt = DateTime.Now;
 | 
					 | 
					 | 
					 | 
					            // watcher.EnableRaisingEvents = false;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                string tmp = dt.Hour.ToString() + "时" + dt.Minute.ToString() + "分" + dt.Second.ToString() + "秒" + dt.Millisecond.ToString() + "毫秒,目录发生变化\r\n";
 | 
					 | 
					 | 
					 | 
					            DateTime lastWriteTime = File.GetLastWriteTime(e.FullPath);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (lastWriteTime != lastRead)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                lastRead = lastWriteTime;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                string lastLine = File.ReadAllLines(e.FullPath).Last();
 | 
					 | 
					 | 
					 | 
					                string lastLine = File.ReadAllLines(e.FullPath).Last();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                DataList.Add(new WatcherFileModel
 | 
					 | 
					 | 
					 | 
					                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                {
 | 
					 | 
					 | 
					 | 
					                {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    CreateTime = DateTime.Now.ToString(),
 | 
					 | 
					 | 
					 | 
					                    DataList.Add(new WatcherFileModel
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    ChangeType = e.ChangeType,
 | 
					 | 
					 | 
					 | 
					                    {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    Name = e.Name,
 | 
					 | 
					 | 
					 | 
					                        CreateTime = DateTime.Now.ToString(),
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    FullPath = e.FullPath,
 | 
					 | 
					 | 
					 | 
					                        ChangeType = e.ChangeType,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    Data = lastLine,
 | 
					 | 
					 | 
					 | 
					                        Name = e.Name,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    IsSend = false
 | 
					 | 
					 | 
					 | 
					                        FullPath = e.FullPath,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }) ;
 | 
					 | 
					 | 
					 | 
					                        Data = lastLine,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					                        IsSend = false
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    });
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                }));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                CSDevicePublish cSDevicePublish = new CSDevicePublish()
 | 
					 | 
					 | 
					 | 
					                CSDevicePublish cSDevicePublish = new CSDevicePublish()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                {
 | 
					 | 
					 | 
					 | 
					                {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    type = CSMessage.publish,
 | 
					 | 
					 | 
					 | 
					                    type = CSMessage.publish,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -279,7 +327,7 @@ namespace Txgy.FilesWatcher.ViewModels
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                };
 | 
					 | 
					 | 
					 | 
					                };
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                string jsonStr = JsonSerializer.Serialize(cSDevicePublish);
 | 
					 | 
					 | 
					 | 
					                string jsonStr = JsonSerializer.Serialize(cSDevicePublish);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                _websocketClient.SendMes(jsonStr);
 | 
					 | 
					 | 
					 | 
					                _websocketClient.SendMes(jsonStr);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }));
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        private void Watcher_Renamed(object sender, RenamedEventArgs e)
 | 
					 | 
					 | 
					 | 
					        private void Watcher_Renamed(object sender, RenamedEventArgs e)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |