|
|
|
@ -97,25 +97,36 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
//}
|
|
|
|
|
StateMes = "执行中";
|
|
|
|
|
StartEnable = false;
|
|
|
|
|
await StartHandle(StartTime,EndTime);
|
|
|
|
|
StateMes = "未开始";
|
|
|
|
|
var list= await StartHandle(StartTime,EndTime);
|
|
|
|
|
foreach (var item in list)
|
|
|
|
|
{
|
|
|
|
|
DataList.Insert(0, new FileModel
|
|
|
|
|
{
|
|
|
|
|
CreateTime = DateTime.Now.ToString("yyyy-MM-dd T HH:mm:ss"),
|
|
|
|
|
Data = $"{item}"
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StateMes = "已完成";
|
|
|
|
|
StartEnable = true;
|
|
|
|
|
}).ObservesCanExecute(()=>StartEnable);
|
|
|
|
|
|
|
|
|
|
CancellationTokenSource cts = new CancellationTokenSource();
|
|
|
|
|
public async Task StartHandle(DateTime start, DateTime end)
|
|
|
|
|
public async Task<List<string>> StartHandle(DateTime start, DateTime end)
|
|
|
|
|
{
|
|
|
|
|
_log.Log.DebugFormat("ManualModeDialogViewModel.StartHandle() start:{0},end:{1}",start, end);
|
|
|
|
|
cts = new CancellationTokenSource();
|
|
|
|
|
CancellationToken cancellationToken = cts.Token;
|
|
|
|
|
string realtimePath = Path.Combine(mainModel.MainPath, mainModel.RealtimePath);
|
|
|
|
|
string postPath = Path.Combine(mainModel.MainPath, mainModel.PostPath);
|
|
|
|
|
List<string> logList=new List<string>();
|
|
|
|
|
Task task1 = Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
DateTime time = start.AddMinutes(1);
|
|
|
|
|
while (!cancellationToken.IsCancellationRequested)
|
|
|
|
|
{
|
|
|
|
|
time = time.AddMinutes(1);
|
|
|
|
|
MseedUpload(time);
|
|
|
|
|
logList.AddRange(MseedUpload(time));
|
|
|
|
|
if (time >= end)
|
|
|
|
|
{
|
|
|
|
|
break;
|
|
|
|
@ -135,7 +146,7 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
Console.WriteLine("Cancellation");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
RealtimeChanged(file.FullName, line);
|
|
|
|
|
logList.AddRange(RealtimeChanged(file.FullName, line));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, cancellationToken);
|
|
|
|
@ -152,11 +163,12 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
Console.WriteLine("Cancellation");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
PostChanged(file.FullName, line);
|
|
|
|
|
logList.AddRange(PostChanged(file.FullName, line));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, cancellationToken);
|
|
|
|
|
await Task.WhenAll(task1, task2, task3);
|
|
|
|
|
return logList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -165,39 +177,47 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
cts.Cancel();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
private void MseedUpload(DateTime currentT)
|
|
|
|
|
public DelegateCommand ClearLogCommand => new DelegateCommand(() =>
|
|
|
|
|
{
|
|
|
|
|
if (DataList.Count > 0) { DataList.Clear(); }
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
private List<string> MseedUpload(DateTime currentT)
|
|
|
|
|
{
|
|
|
|
|
string path = $"{Path.Combine(mainModel.MainPath, mainModel.MseedPath)}/{currentT.Month.ToString("D2")}/{currentT.Day.ToString("D2")}/{currentT.Hour.ToString("D2")}/{currentT.Minute.ToString("D2")}";
|
|
|
|
|
// path = "I:\\yuwuN3102mseed\\NET2023\\06\\22\\21\\51";
|
|
|
|
|
Debug.WriteLine($"**********当前时间:{currentT},监控路径:{path}");
|
|
|
|
|
List<string> logList = new List<string>();
|
|
|
|
|
if (Directory.Exists(path) && mainModel.IsUploadDB && mainModel.IsUploadMseedPath)
|
|
|
|
|
{
|
|
|
|
|
_log.Log.DebugFormat("ManualModeDialogViewModel.MseedUpload() currentT:{0},path:{1}", currentT, path);
|
|
|
|
|
UploadMseedFile.UploadMSeedOnce((a =>
|
|
|
|
|
logList= UploadMseedFile.UploadMSeedOnce((a =>
|
|
|
|
|
{
|
|
|
|
|
timer1.Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
// if (DataList.Count >= 20) { DataList.Remove(dataList.Last()); }
|
|
|
|
|
DataList.Insert(0, new FileModel
|
|
|
|
|
{
|
|
|
|
|
CreateTime = DateTime.Now.ToString("yyyy-MM-dd T HH:mm:ss"),
|
|
|
|
|
Data = $"{currentT.AddMinutes(-2).ToString("yyyy-MM-dd T HH:mm:ss")}{a}"
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
//timer1.Dispatcher.Invoke(() =>
|
|
|
|
|
//{
|
|
|
|
|
// // if (DataList.Count >= 20) { DataList.Remove(dataList.Last()); }
|
|
|
|
|
// DataList.Insert(0, new FileModel
|
|
|
|
|
// {
|
|
|
|
|
// CreateTime = DateTime.Now.ToString("yyyy-MM-dd T HH:mm:ss"),
|
|
|
|
|
// Data = $"{currentT.AddMinutes(-2).ToString("yyyy-MM-dd T HH:mm:ss")}{a}"
|
|
|
|
|
// });
|
|
|
|
|
//});
|
|
|
|
|
}), path, mainModel.WorkAreaId);
|
|
|
|
|
}
|
|
|
|
|
return logList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void RealtimeChanged(string filePath, string lastLine)
|
|
|
|
|
private List<string> RealtimeChanged(string filePath, string lastLine)
|
|
|
|
|
{
|
|
|
|
|
// string tmp = dt.Hour.ToString() + "时" + dt.Minute.ToString() + "分" + dt.Second.ToString() + "秒" + dt.Millisecond.ToString() + "毫秒,目录发生变化\r\n";
|
|
|
|
|
DateTime lastWriteTime = DateTime.Now; //File.GetLastWriteTime(e.FullPath);
|
|
|
|
|
Debug.WriteLine($"最后修改时间:{lastWriteTime},文件路径:{filePath}");
|
|
|
|
|
filePath = Path.GetDirectoryName(filePath);
|
|
|
|
|
_log.Log.DebugFormat("ManualModeDialogViewModel.RealtimeChanged() filePath:{0},path:{1}", filePath, lastLine);
|
|
|
|
|
List<string> logList = new List<string>();
|
|
|
|
|
if (mainModel.IsUploadDB && mainModel.IsUploadRealtimePath)
|
|
|
|
|
{
|
|
|
|
|
UploadRealtimeFile.UploadRealtimeFileOnce(filePath, lastLine, mainModel.WorkAreaId, out bool isUpload);
|
|
|
|
|
logList= UploadRealtimeFile.UploadRealtimeFileOnce(filePath, lastLine, mainModel.WorkAreaId, out bool isUpload);
|
|
|
|
|
timer1.Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
// if (RealTimeDataList.Count >= 20) { RealTimeDataList.Remove(RealTimeDataList.Last()); }
|
|
|
|
@ -218,19 +238,21 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
|
|
|
|
|
}, filePath, lastLine);
|
|
|
|
|
}
|
|
|
|
|
return logList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void PostChanged(string filePath, string lastLine)
|
|
|
|
|
private List<string> PostChanged(string filePath, string lastLine)
|
|
|
|
|
{
|
|
|
|
|
// string tmp = dt.Hour.ToString() + "时" + dt.Minute.ToString() + "分" + dt.Second.ToString() + "秒" + dt.Millisecond.ToString() + "毫秒,目录发生变化\r\n";
|
|
|
|
|
DateTime lastWriteTime = DateTime.Now; //File.GetLastWriteTime(e.FullPath);
|
|
|
|
|
Debug.WriteLine($"最后修改时间:{lastWriteTime},文件路径:{filePath}");
|
|
|
|
|
filePath = Path.GetDirectoryName(filePath);
|
|
|
|
|
_log.Log.DebugFormat("ManualModeDialogViewModel.RealtimeChanged() filePath:{0},path:{1}", filePath, lastLine);
|
|
|
|
|
List<string> logList = new List<string>();
|
|
|
|
|
if (mainModel.IsUploadDB && mainModel.IsUploadPostPath)
|
|
|
|
|
{
|
|
|
|
|
UploadPostproFile.UploadPostproFileOnce(filePath, lastLine, mainModel.WorkAreaId, out bool isUpload);
|
|
|
|
|
logList= UploadPostproFile.UploadPostproFileOnce(filePath, lastLine, mainModel.WorkAreaId, out bool isUpload);
|
|
|
|
|
{
|
|
|
|
|
timer1.Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
@ -256,6 +278,7 @@ namespace Txgy.FilesWatcher.ViewModels
|
|
|
|
|
});
|
|
|
|
|
}, filePath, lastLine);
|
|
|
|
|
}
|
|
|
|
|
return logList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private DispatcherTimer timer1 = new DispatcherTimer();
|
|
|
|
|