using DevExpress.Utils.About; using DevExpress.Utils.Html; using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Forms; using DW5S.App.EditForms; using DW5S.Entity; using DW5S.Repostory; using Serilog; using DW5S.Service; using DW5S.ViewModel; namespace DW5S.App.UserControl { public partial class CtrlTarget : DevExpress.XtraEditors.XtraUserControl { readonly List list = new List(); public CtrlTarget() { InitializeComponent(); } private async void CtrlSat_Load(object sender, EventArgs e) { try { gridTar.UseDefault(list).UseMultiSelect().UseRowNumber() .UseAddAsync(Add) .UseEditAsync(Edit) .UseDeleteAsync(Del); var unitOfWork = IocContainer.UnitOfWork; var repsTarget = unitOfWork.Of(); var res = await repsTarget.GetAllAsync(p => p.TargetName); list.AddRange(res.To>()); gridView1.RefreshData(); } catch (Exception ex) { string msg = "查询目标信息异常"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); } } private async Task Add() { try { TargetEditor frm = new TargetEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var repsTarget = unitOfWork.Of(); var res = await repsTarget.AddOrUpdateAsync(addItem.To()); 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(TargetViewModel editItem) { try { TargetEditor frm = new TargetEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var repsTarget = unitOfWork.Of(); var find = await repsTarget.FirstOrDefaultAsync(p => p.Id == editItem.Id); find.TargetName = editItem.TargetName; find.TargeColor = editItem.TargeColor; find.UpdateTime = DateTime.Now; await repsTarget.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 Del(List list) { try { var unitOfWork = IocContainer.UnitOfWork; var repsTarget = unitOfWork.Of(); await repsTarget.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 void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) { if (e.CellValue == null) return; if (e.Column.FieldName == nameof(TargetInfo.TargeColor)) { var clolrRes = ColorTranslator.FromHtml(e.CellValue.ToString()); e.Appearance.BackColor = clolrRes; } } private async void gridView1_DoubleClick(object sender, EventArgs e) { var editItem = gridView1.GetFocusedRow() as TargetViewModel; if (editItem == null) return; await Edit(editItem); } } }