using DW5S.App.EditForms; using DW5S.Entity; using DW5S.Repostory; using DW5S.ViewModel; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace DW5S.App.UserControl { public partial class CtrlSample : DevExpress.XtraEditors.XtraUserControl { readonly List listSampleInfo = new List(); public CtrlSample() { InitializeComponent(); } private async void CtrlSample_Load(object sender, EventArgs e) { try { gridSample.UseDefault(listSampleInfo).UseMultiSelect().UseRowNumber() .UseAddAsync(AddSampleInfo) .UseEditAsync(EditSampleInfo) .UseDeleteAsync(DeleteSampleInfo); var unitOfWork = IocContainer.UnitOfWork; var items = await unitOfWork.Of().AsQueryable() .Include(s => s.SigInfo) .Include(s => s.RefTxInfo) .OrderBy(p => p.SampleName).ThenBy(p=>p.SigInfo.FreqDownHz) .ToListAsync(); listSampleInfo.AddRange(items.To>()); gridViewSample.RefreshData(); } catch (Exception ex) { IocContainer.Logger.Error(ex, "查询样本信息异常"); DxHelper.MsgBoxHelper.ShowError("查询样本信息异常"); } } private async Task AddSampleInfo() { try { SampleEditor frm = new SampleEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var addSample = await unitOfWork.Of().AddOrUpdateAsync(new SampleInfo { SampleName = addItem.SampleName, SamplePath = addItem.SamplePath, SampleFileName = addItem.SampleFileName, Fs = addItem.Fs, StartSec = addItem.StartSec, EndSec = addItem.EndSec, TxInfoID = addItem.TxInfoID, SigInfoID = addItem.SigInfoID, Remark = addItem.Remark, UpdateTime = DateTime.Now, }); await unitOfWork.SaveAsync(); addItem.Id = addSample.Id; return addItem; } catch (Exception ex) { IocContainer.Logger.Error(ex, "添加样本信息异常"); DxHelper.MsgBoxHelper.ShowError("添加样本信息异常"); return null; } } private async Task EditSampleInfo(SampleViewModel editItem) { try { SampleEditor frm = new SampleEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; editItem.UpdateTime = DateTime.Now; var edit = editItem.To(); edit.RefTxInfo = null; edit.SigInfo = null; await unitOfWork.Of().AddOrUpdateAsync(edit); await unitOfWork.SaveAsync(); return editItem; } catch (Exception ex) { IocContainer.Logger.Error(ex, "保存样本信息异常"); DxHelper.MsgBoxHelper.ShowError("保存样本信息异常"); return null; } } private async Task DeleteSampleInfo(List list) { try { var unitOfWork = IocContainer.UnitOfWork; await unitOfWork.Of().DeleteAsync(list.To>()); await unitOfWork.SaveAsync(); return true; } catch (Exception ex) { IocContainer.Logger.Error(ex, "删除样本信息异常"); DxHelper.MsgBoxHelper.ShowError("删除样本信息异常"); return false; } } private async void gridViewSignal_DoubleClick(object sender, EventArgs e) { var editItem = gridViewSample.GetFocusedRow() as SampleViewModel; if (editItem == null) return; await EditSampleInfo(editItem); } } }