修改测试问题

master
mzhifa 7 months ago
parent d90ff5b8bd
commit c6f7c3c3f1

@ -7,10 +7,12 @@ using System.Threading.Tasks;
namespace StartServerWPF.Models namespace StartServerWPF.Models
{ {
public class DataProModelArray public class DataProModelArray : BindableBase
{ {
private List<DataProModel> dataProModels1;
public int selectIndex { get; set; } public int selectIndex { get; set; }
public List<DataProModel> dataProModels { get; set; } public List<DataProModel> DataProModels { get => dataProModels1; set => dataProModels1 = value; }
} }
public class DataProModel: BindableBase public class DataProModel: BindableBase
@ -18,8 +20,8 @@ namespace StartServerWPF.Models
private string name; private string name;
private string dataPath; private string dataPath;
private string resultPath; private string resultPath;
private string startTime; private DateTime startTime;
private string endTime; private DateTime endTime;
public string Name { get => name; set => SetProperty(ref name, value); } public string Name { get => name; set => SetProperty(ref name, value); }
@ -27,8 +29,8 @@ namespace StartServerWPF.Models
public string ResultPath { get => resultPath; set => SetProperty(ref resultPath, value); } public string ResultPath { get => resultPath; set => SetProperty(ref resultPath, value); }
public string StartTime { get => startTime; set => SetProperty(ref startTime, value); } public DateTime StartTime { get => startTime; set => SetProperty(ref startTime, value); }
public string EndTime { get => endTime; set => SetProperty(ref endTime, value); } public DateTime EndTime { get => endTime; set => SetProperty(ref endTime, value); }
} }
} }

@ -70,9 +70,13 @@ namespace StartServerWPF.Modules.Main.ViewModels
get => _wareaSelectedIndex; get => _wareaSelectedIndex;
set set
{ {
if (value >= 0) if(value >= 0)
{ {
// _workareaModel = modelArray.workarea[value]; var model = _workareasModelArray.workarea[value];
string jsonStr = File.ReadAllText(Path.Combine(model.filepath, "datapro.json"));
var datas = JsonConvert.DeserializeObject<List<DataProModel>>(jsonStr);
NameSource = new ObservableCollection<DataProModel>();
datas.ForEach(d => { NameSource.Add(d); });
} }
SetProperty(ref _wareaSelectedIndex, value); SetProperty(ref _wareaSelectedIndex, value);
} }
@ -84,6 +88,30 @@ namespace StartServerWPF.Modules.Main.ViewModels
set { SetProperty(ref _workareaNameSource, value); } set { SetProperty(ref _workareaNameSource, value); }
} }
private ObservableCollection<DataProModel> _nameSource=new ObservableCollection<DataProModel>();
public ObservableCollection<DataProModel> NameSource
{
get => _nameSource;
set { SetProperty(ref _nameSource, value); }
}
private int _dataSelectedIndex;
public int DataSelectedIndex
{
get => _dataSelectedIndex;
set
{
if (value >= 0)
{
var item = NameSource[value];
StartSelectedDate = item.StartTime;
EndSelectedDate = item.EndTime;
DataPath = item.DataPath;
SavePath = item.ResultPath;
}
SetProperty(ref _dataSelectedIndex, value);
}
}
private ObservableCollection<MsEventModel> _apmsEventSource = new ObservableCollection<MsEventModel>(); private ObservableCollection<MsEventModel> _apmsEventSource = new ObservableCollection<MsEventModel>();
public ObservableCollection<MsEventModel> ApmsEventSource public ObservableCollection<MsEventModel> ApmsEventSource
{ {
@ -109,39 +137,47 @@ namespace StartServerWPF.Modules.Main.ViewModels
{ {
StartSelectedDate = DateTime.Now; StartSelectedDate = DateTime.Now;
EndSelectedDate = DateTime.Now; EndSelectedDate = DateTime.Now;
WorkareaNameSource = new ObservableCollection<string>(); WorkareaNameSource = new ObservableCollection<string>();
_workareasModelArray.workarea.Select(n => n.workareaname).ToList().ForEach(a => WorkareaNameSource.Add(a)); _workareasModelArray.workarea.Select(n => n.workareaname).ToList().ForEach(a => WorkareaNameSource.Add(a));
WareaSelectedIndex = _workareasModelArray.selectIndex; WareaSelectedIndex = _workareasModelArray.selectIndex;
var model = _workareasModelArray.workarea[WareaSelectedIndex];
string jsonStr= File.ReadAllText(Path.Combine(model.filepath, "datapro.json"));
var datas= JsonConvert.DeserializeObject<List<DataProModel>>(jsonStr);
NameSource = new ObservableCollection<DataProModel>();
datas.ForEach(d => { NameSource.Add(d); });
DataSelectedIndex = 0;
}); });
public DelegateCommand SaveCommand => new(() => public DelegateCommand AddItemCommand => new(() =>
{ {
int count = NameSource.Count()+1;
DataProModelArray dataProModelArray = new DataProModelArray(); NameSource.Add(new DataProModel
dataProModelArray.selectIndex = 0;
dataProModelArray.dataProModels = new List<DataProModel>();
dataProModelArray.dataProModels.Add(new DataProModel
{ {
Name = DateTime.Now.ToString("d"), Name = DateTime.Now.ToString("d") +" "+ count.ToString("D2"),
DataPath = DataPath, DataPath = "",
ResultPath = SavePath, ResultPath = "",
StartTime = DateTime.Now.ToString("G"), StartTime = DateTime.Now,
EndTime = DateTime.Now.ToString("G") EndTime = DateTime.Now
}); });
string jsonStr = JsonConvert.SerializeObject(dataProModelArray, Formatting.Indented); DataSelectedIndex = NameSource.Count()-1;
var model = _workareasModelArray.workarea[WareaSelectedIndex];
File.WriteAllText(Path.Combine( model.filepath, "datapro.json"), jsonStr);
}); });
public DelegateCommand DeleteCommand => new(() => public DelegateCommand DeleteCommand => new(() =>
{ {
if (MessageBox.Show("确认删除?", "警告", MessageBoxButton.OKCancel,
MessageBoxImage.Exclamation) == MessageBoxResult.OK)
{
NameSource.RemoveAt(DataSelectedIndex);
DataSelectedIndex = 0;
};
});
public DelegateCommand SaveCommand => new(() =>
{
string jsonStr = JsonConvert.SerializeObject(NameSource, Formatting.Indented);
var model = _workareasModelArray.workarea[WareaSelectedIndex];
File.WriteAllText(Path.Combine(model.filepath, "datapro.json"), jsonStr);
}); });
public DelegateCommand<object> SelectFileCommand => new((obj) => public DelegateCommand<object> SelectFileCommand => new((obj) =>
{ {
@ -217,7 +253,9 @@ namespace StartServerWPF.Modules.Main.ViewModels
process.ProParams = $"{str} {temPath}"; process.ProParams = $"{str} {temPath}";
//dataProtools 配置更新 //dataProtools 配置更新
var area = JsonParser.DeepCopy<WorkareaModel>(_workareaModel); string temJson= JsonConvert.SerializeObject(_workareaModel);
var area = JsonConvert.DeserializeObject<WorkareaModel>(temJson); //JsonParser.DeepCopy<WorkareaModel>(_workareaModel);
ApmsModel tools = area.apmModel; ApmsModel tools = area.apmModel;
tools.savepath = SavePath; tools.savepath = SavePath;
tools.station = Path.GetFullPath(Path.Combine(area.savepath, area.apmModel.station)).Replace("\\", "/"); tools.station = Path.GetFullPath(Path.Combine(area.savepath, area.apmModel.station)).Replace("\\", "/");

@ -524,13 +524,13 @@ namespace StartServerWPF.Modules.Main.ViewModels
process.StartInfo.FileName = Path.GetFullPath(proInfo.ProPath + proInfo.ProName+".exe"); process.StartInfo.FileName = Path.GetFullPath(proInfo.ProPath + proInfo.ProName+".exe");
process.StartInfo.WorkingDirectory = Path.GetFullPath(proInfo.ProPath); process.StartInfo.WorkingDirectory = Path.GetFullPath(proInfo.ProPath);
process.StartInfo.Arguments = proInfo.ProParams; process.StartInfo.Arguments = proInfo.ProParams;
Debug.WriteLine($"*******name:{process.StartInfo.FileName}, arguments:{process.StartInfo.Arguments}*********");
process.StartInfo.UseShellExecute = false; process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true; process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true; process.StartInfo.CreateNoWindow = true;
//* Set your output and error (asynchronous) handlers //* Set your output and error (asynchronous) handlers
if (!proInfo.ProName.Contains("gw.apms")) // if (!proInfo.ProName.Contains("gw.apms"))
{ {
process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler); process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler); process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
@ -555,15 +555,15 @@ namespace StartServerWPF.Modules.Main.ViewModels
if (outLine.Data.Contains("ProcessSlice:")) if (outLine.Data.Contains("ProcessSlice:"))
{ {
var pro = sendingProcess as Process; var pro = sendingProcess as Process;
if (pro != null&& pro.MainModule.ModuleName.Contains(_systemConfig.proTools.ProName)) if (pro != null)
{ {
Application.Current.Dispatcher.InvokeAsync(() => Application.Current.Dispatcher.InvokeAsync(() =>
{ {
//if (pro.MainModule.ModuleName.Contains(_systemConfig.proApms.ProName)) if (pro.MainModule.ModuleName.Contains(_systemConfig.proApms.ProName))
//{ {
// AddItems(ApmsProcessSliceSource, new ProcessingInformationModel { ProcessMes = outLine.Data, MonitorTime = DateTime.Now.ToString() }); AddItems(ApmsProcessSliceSource, new ProcessingInformationModel { ProcessMes = outLine.Data, MonitorTime = DateTime.Now.ToString() });
//} }
//else else
if (pro.MainModule.ModuleName.Contains(_systemConfig.proTools.ProName)) if (pro.MainModule.ModuleName.Contains(_systemConfig.proTools.ProName))
{ {
AddItems(ToolsProcessSliceSource, new ProcessingInformationModel { ProcessMes = outLine.Data, MonitorTime = DateTime.Now.ToString() }); AddItems(ToolsProcessSliceSource, new ProcessingInformationModel { ProcessMes = outLine.Data, MonitorTime = DateTime.Now.ToString() });

@ -273,8 +273,9 @@ namespace StartServerWPF.Modules.Main.ViewModels
} }
}; };
JsonParser.WriteSystemConfigFile(Path.Combine(_wareaModel.savepath, Path.GetFileName(_wareaModel.savepath) + ".json"), _wareaModel); JsonParser.WriteSystemConfigFile(Path.Combine(_wareaModel.savepath, Path.GetFileName(_wareaModel.savepath) + ".json"), _wareaModel);
var curWorkarea = JsonParser.DeepCopy<WorkareaModel>(_wareaModel); string temJson = JsonConvert.SerializeObject(_wareaModel);
var curWorkarea = JsonConvert.DeserializeObject<WorkareaModel>(temJson);
if (!string.IsNullOrEmpty(apmStationFile)) if (!string.IsNullOrEmpty(apmStationFile))
{ {
string destFileName = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.station)); string destFileName = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.station));
@ -309,7 +310,7 @@ namespace StartServerWPF.Modules.Main.ViewModels
ApmsModel tools = curWorkarea.apmModel; ApmsModel tools = curWorkarea.apmModel;
tools.station = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.station)).Replace("\\", "/"); tools.station = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.station)).Replace("\\", "/");
tools.ttime[0].ttime2d = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.ttime[0].ttime2d)).Replace("\\", "/"); tools.ttime[0].ttime2d = Path.GetFullPath(Path.Combine(curWorkarea.savepath, curWorkarea.apmModel.ttime[0].ttime2d)).Replace("\\", "/");
tools.savepath = Path.Combine(curWorkarea.savepath, curWorkarea.toolsavepath); tools.savepath =curWorkarea.savepath+"/"+ curWorkarea.toolsavepath;
tools.push2wx = curWorkarea.toolpush2wx ? "YES" : "NO"; ; tools.push2wx = curWorkarea.toolpush2wx ? "YES" : "NO"; ;
JsonParser.WriteSystemConfigFile(Path.Combine(_systemConfig.proTools.ProPath, "apms.json"), tools); JsonParser.WriteSystemConfigFile(Path.Combine(_systemConfig.proTools.ProPath, "apms.json"), tools);

@ -56,8 +56,8 @@
<DockPanel VerticalAlignment="Center"> <DockPanel VerticalAlignment="Center">
<TextBlock Text="配置名称:" Width="65" VerticalAlignment="Center"/> <TextBlock Text="配置名称:" Width="65" VerticalAlignment="Center"/>
<Button Content="删除" Background="#FFA6783E" Foreground="White" DockPanel.Dock="Right" Command="{Binding DeleteCommand}"/> <Button Content="删除" Background="#FFA6783E" Foreground="White" DockPanel.Dock="Right" Command="{Binding DeleteCommand}"/>
<Button Content="保存" Background="#FF0ABEFF" Foreground="White" DockPanel.Dock="Right" Command="{Binding SaveCommand}"/> <Button Content="保存" Background="#FF0ABEFF" Foreground="White" DockPanel.Dock="Right" Command="{Binding AddItemCommand}"/>
<ComboBox DockPanel.Dock="Left" /> <ComboBox DockPanel.Dock="Left" ItemsSource="{Binding NameSource}" DisplayMemberPath="Name" SelectedIndex="{Binding DataSelectedIndex}"/>
</DockPanel> </DockPanel>
<DockPanel VerticalAlignment="Center"> <DockPanel VerticalAlignment="Center">
<TextBlock Text="数据目录:" Width="65" VerticalAlignment="Center"/> <TextBlock Text="数据目录:" Width="65" VerticalAlignment="Center"/>
@ -71,7 +71,7 @@
</DockPanel> </DockPanel>
<DockPanel VerticalAlignment="Center"> <DockPanel VerticalAlignment="Center">
<TextBlock Text="开始时间:" Width="65" VerticalAlignment="Center"/> <TextBlock Text="开始时间:" Width="65" VerticalAlignment="Center"/>
<hc:DateTimePicker DockPanel.Dock="Left" SelectedDateTime="{Binding StartSelectedDate}"/> <hc:DateTimePicker DockPanel.Dock="Left" SelectedDateTime="{Binding StartSelectedDate}"/>
</DockPanel> </DockPanel>
<DockPanel VerticalAlignment="Center"> <DockPanel VerticalAlignment="Center">
<TextBlock Text="结束时间:" Width="65" VerticalAlignment="Center"/> <TextBlock Text="结束时间:" Width="65" VerticalAlignment="Center"/>
@ -103,12 +103,13 @@
</ListBox> </ListBox>
</Border> </Border>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="开始" Command="{Binding StartCommand}" VerticalAlignment="Bottom" IsEnabled="{Binding IsBusy}"/> <Button Content="应用" Background="#FF0ABEFF" Foreground="White" Command="{Binding SaveCommand}" VerticalAlignment="Bottom" Margin="0,0,30,0"/>
<Button Content="开始" Background="#FF0ABEFF" Foreground="White" Command="{Binding StartCommand}" VerticalAlignment="Bottom" IsEnabled="{Binding IsBusy}"/>
<hc:LoadingCircle Height="30" Visibility="{Binding IsBusy, Converter={StaticResource Boolean2VisibilityReConverter}}"/> <hc:LoadingCircle Height="30" Visibility="{Binding IsBusy, Converter={StaticResource Boolean2VisibilityReConverter}}"/>
</StackPanel> </StackPanel>
</Grid> </Grid>
<Grid Grid.Column="2" Grid.Row="0"> <Grid Grid.Column="2" Grid.Row="0" Margin="20">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="30"/> <RowDefinition Height="30"/>
<RowDefinition Height="61*"/> <RowDefinition Height="61*"/>

Loading…
Cancel
Save