using DevExpress.XtraBars.ViewInfo; using DW5S.App.EditForms; using DW5S.Entity; using DW5S.Repostory; using DW5S.Service; using DW5S.ViewModel; using Serilog; 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 CtrlCdbTx : DevExpress.XtraEditors.XtraUserControl { readonly List list = new List(); public CtrlCdbTx() { InitializeComponent(); } private async void CtrlCdbTx_Load(object sender, EventArgs e) { try { gridCdbTx.UseDefault(list).UseMultiSelect().UseRowNumber() .UseAddAsync(Add) .UseEditAsync(Edit) .UseDeleteAsync(Delete) .UseBoolColumn(nameof(RecTxViewModel.Enable), "启用", "禁用"); var unitOfWork = IocContainer.UnitOfWork; var repsCdbTx = unitOfWork.Of(); var items = await repsCdbTx.FindAsync(f => f.TxType == EnumTxType.Cdb, p => p.Name); list.AddRange(items.To>()); } catch (Exception ex) { string msg = "查询接收站信息异常"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); } } private async Task Add() { try { CdbEditor frm = new CdbEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info.To(); addItem.TxType = EnumTxType.Cdb; var unitOfWork = IocContainer.UnitOfWork; var repsCdbTx = unitOfWork.Of(); var res = await repsCdbTx.AddOrUpdateAsync(addItem); await unitOfWork.SaveAsync(); return res.To(); } catch (Exception ex) { string msg = "添加接收站信息异常"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); return null; } } private async Task Edit(CdbTxViewModel editItem) { try { CdbEditor frm = new CdbEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var repsCdbTx = unitOfWork.Of(); var find = await repsCdbTx.FirstOrDefaultAsync(p => p.Id == editItem.Id); find.Name = editItem.Name; find.Lon = editItem.Lon; find.Lat = editItem.Lat; find.Remark = editItem.Remark; find.Enable = editItem.Enable; await repsCdbTx.AddOrUpdateAsync(find); await unitOfWork.SaveAsync(); return editItem; } catch (Exception ex) { string msg = "保存接收站信息异常"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); return null; } } private async Task Delete(List list) { try { var unitOfWork = IocContainer.UnitOfWork; var repsCdbTx = unitOfWork.Of(); await repsCdbTx.DeleteAsync(list.To>()); await unitOfWork.SaveAsync(); return true; } catch (Exception ex) { string msg = "删除接收站信息异常"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); return false; } } private async void gridView1_DoubleClick(object sender, EventArgs e) { var editItem = gridView.GetFocusedRow() as CdbTxViewModel; if (editItem == null) return; await Edit(editItem); } } }