public async Task NetBatchExport() { if (_windowManager.ShowMessageBox("批量导出当前工件数据到Excel文件", "导出数据", MessageBoxButton.OKCancel, MessageBoxImage.Information) == MessageBoxResult.OK) { CanNetBatchExport = false; await Task.Run(() => { if (_netHistoryView.Workrecs.Count > 0) { foreach (var workerec in _netHistoryView.Workrecs) { var fileName = Global.SystemPara.OutputPath + "Net" + workerec.SerialNo + ".xls"; using var db = new AliDbContext(); var holerecs = db.Holerecs.Where(h => h.SerialNo == workerec.SerialNo).ToList(); if (holerecs.Count > 0 && CommonMethods.GetFilePath(fileName)) { Status = "正在导出工件" + workerec.SerialNo + "数据"; for (int i = 1; i < holerecs.Count + 1; i++) { var points = new List <Models.Point>(); points = CommonMethods.StringToList(holerecs[i - 1].Data); NopiExcelHelper <Models.Point> .AddExcel(points, fileName, "hole" + i.ToString(), holerecs[i - 1].MaxPressure); } } } } }); CanNetBatchExport = true; Status = ""; } }
public async void Confirm() { try { await Task.Run(() => { Indicate = "Visible"; Workrecs = new List <Workrec>(); Holerecs = new List <Holerec>(); using (var db = new DrillContext()) { Workrecs = db.Workrec.Where(w => w.LastTime >= StartTime && w.LastTime <= EndTime).AsNoTracking().ToList(); Holerecs = db.Holerec.Where(h => h.TestTime >= StartTime && h.TestTime <= EndTime).AsNoTracking().ToList(); } using (var alidb = new AliDbContext()) { var aliworkrecs = new List <Workrec>(); var aliholerecs = new List <Holerec>(); aliworkrecs = alidb.Workrecs.AsNoTracking().ToList(); //一次性缓存 aliholerecs = alidb.Holerecs.AsNoTracking().ToList(); // foreach (var item in Workrecs) { //if (alidb.Workrecs.Any(w => w.Id == item.Id)==false) if (aliworkrecs.Any(w => w.Id == item.Id) == false) { alidb.Workrecs.Add(item); } else { alidb.Workrecs.Update(item); } } foreach (var item in Holerecs) { //if(alidb.Holerecs.Any(h => h.Id == item.Id) == false) if (aliholerecs.Any(h => h.Id == item.Id) == false) { alidb.Holerecs.Add(item); } else { alidb.Holerecs.Update(item); } } alidb.SaveChanges(); } }); Indicate = "Hidden"; _windowManager.ShowMessageBox("上传完成", "信息", MessageBoxButton.OK); } catch (Exception) { Indicate = "Hidden"; _windowManager.ShowMessageBox("网络数据库连接失败!", "警告"); } }
public async void DeleteHoleRec() { if (Holerec != null && _windowManager.ShowMessageBox("确认要删除工件" + Workrec.SerialNo + "洞号" + Holerec.HoleNumber + "的记录?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { await Task.Run(() => { var db = new AliDbContext(); db.Holerecs.Remove(Holerec); db.SaveChanges(); }); QueryHole(); } }
public async void QueryWorkBySerialNO() { await Task.Run(() => { if (QuerySearialNO != null) { using var db = new AliDbContext(); Workrecs = db.Workrecs.Where(w => w.SerialNo.Contains(QuerySearialNO)).OrderByDescending(w => w.LastTime).ToList(); } }); if (Workrecs != null) { Workrec = Workrecs.FirstOrDefault(); } }
public async void DeleteWorkRec() { if (Workrec != null && _windowManager.ShowMessageBox("确认要删除工件号为" + Workrec.SerialNo + "的记录?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { await Task.Run(() => { var db = new AliDbContext(); var temph = db.Holerecs.Where(h => h.SerialNo == Workrec.SerialNo).ToList(); db.Workrecs.Remove(Workrec); db.Holerecs.RemoveRange(temph); db.SaveChanges(); }); Query(); } }
public async void QueryHole() { await Task.Run(() => { using var db = new AliDbContext(); Holerecs = db.Holerecs.Where(h => h.SerialNo == Workrec.SerialNo).ToList(); }); MyModel.Title = "工件" + Workrec.SerialNo + "曲线"; MyModel.Series.Clear(); for (int i = 0; i < Holerecs.Count; i++) { List <DataPoint> DataPoints = new List <DataPoint>(); List <Models.Point> points = new List <Models.Point>(); points = CommonMethods.StringToList(Holerecs[i].Data); for (int j = 0; j < points.Count; j++) { var temppoint = new DataPoint(points[j].x * Global.SystemPara.con_factor_x, points[j].y * Global.SystemPara.con_factor_y); DataPoints.Add(temppoint); } OxyPlot.Series.LineSeries lineSeries = new OxyPlot.Series.LineSeries(); lineSeries.Points.AddRange(DataPoints); lineSeries.Color = OxyColor.FromRgb(255, 0, 0); lineSeries.StrokeThickness = 1; lineSeries.TrackerFormatString = "{0}\n{1}: {2:0.#}mm\n{3}: {4:0.##}Mpa"; MyModel.Series.Add(lineSeries); } if (Holerecs != null) { Holerec = Holerecs.FirstOrDefault(); if (Workrec != null) { HoleGridSelectChange(); } } MyModel.InvalidatePlot(true); }
public async void QueryWorkByDate() { try { await Task.Run(() => { using var db = new AliDbContext(); Workrecs = db.Workrecs.Where(w => w.LastTime >= StartTime && w.LastTime <= EndTime).OrderByDescending(w => w.LastTime).ToList(); //if (Workrec != null) QueryHole(); //Workrecs变化后会触发dategrid的selectchange 事件 会触发 queryhole 过程 }); } catch (Exception) { _windowManager.ShowMessageBox("网络数据库连接失败!", "警告"); } //Workrec与dategrid 的selectitem绑定 如果将下面的Workrec查询放在异步方法中, //dategrid 的workrecs查询后会导致dategrid 的selectitem变化-》Workrec的变化,导致下面的Workrec查询没起到作用 if (Workrecs != null) { Workrec = Workrecs.FirstOrDefault(); } }