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.Data.Entity; 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 XdCxRhDW.App.EditForms; using XdCxRhDW.Entity; using XdCxRhDW.Repostory; namespace XdCxRhDW.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); using (RHDWContext db = new RHDWContext()) { var res = db.TargetInfos.OrderBy(p => p.TargetName).OrderBy(p => p.TargetName); list.AddRange(await res.ToListAsync()); } gridView1.RefreshData(); } catch (Exception ex) { Serilog.Log.Error(ex, "查询目标信息异常"); DxHelper.MsgBoxHelper.ShowError("查询目标信息异常"); } } private async Task Add() { try { TargetEditor frm = new TargetEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info; using (RHDWContext db = new RHDWContext()) { db.TargetInfos.Add(addItem); await db.SaveChangesAsync(); } return addItem; } catch (Exception ex) { Serilog.Log.Error(ex, "添加目标信息异常"); DxHelper.MsgBoxHelper.ShowError("添加目标信息异常"); return null; } } private async Task Edit(TargetInfo editItem) { try { TargetEditor frm = new TargetEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; using (RHDWContext db = new RHDWContext()) { var find = await db.TargetInfos.Where(p => p.ID == editItem.ID).FirstOrDefaultAsync(); find.TargetName = editItem.TargetName; find.TargeColor = editItem.TargeColor; find.UpdateTime = DateTime.Now; await db.SaveChangesAsync(); } return editItem; } catch (Exception ex) { Serilog.Log.Error(ex, "保存目标信息异常"); DxHelper.MsgBoxHelper.ShowError("保存目标信息异常"); return null; } } private async Task Del(List list) { try { var ids = list.Select(p => p.ID); using (RHDWContext db = new RHDWContext()) { var delItems = await db.TargetInfos.Where(p => ids.Contains(p.ID)).ToListAsync(); db.TargetInfos.RemoveRange(delItems); await db.SaveChangesAsync(); } return true; } catch (Exception ex) { Serilog.Log.Error(ex, "删除目标信息异常"); DxHelper.MsgBoxHelper.ShowError("删除目标信息异常"); 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 TargetInfo; if (editItem == null) return; await Edit(editItem); } } }