using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using XdCxRhDW.App.EditForms; using XdCxRhDW.Entity; using XdCxRhDW.Repostory; namespace XdCxRhDW.App.UserControl { public partial class CtrlSat : DevExpress.XtraEditors.XtraUserControl { readonly List list = new List(); public CtrlSat() { InitializeComponent(); } private async void CtrlSat_Load(object sender, EventArgs e) { try { gridSat.UseDefault(list).UseMultiSelect().UseRowNumber() .UseAddAsync(Add) .UseEditAsync(Edit) .UseDeleteAsync(Delete); using (var db = new RHDWContext()) { var items = await db.SatInfos.OrderBy(p => p.SatName).ToListAsync(); list.AddRange(items); } } catch (Exception ex) { Serilog.Log.Error(ex, "查询卫星信息异常"); DxHelper.MsgBoxHelper.ShowError("查询卫星信息异常"); } } private async Task Add() { try { SatEditor frm = new SatEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info; using (RHDWContext db = new RHDWContext()) { db.SatInfos.Add(addItem); await db.SaveChangesAsync(); } return addItem; } catch (Exception ex) { Serilog.Log.Error(ex, "添加卫星信息异常"); DxHelper.MsgBoxHelper.ShowError("添加卫星信息异常"); return null; } } private async Task Edit(SatInfo editItem) { try { SatEditor frm = new SatEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; using (RHDWContext db = new RHDWContext()) { var find = await db.SatInfos.Where(p => p.ID == editItem.ID).FirstOrDefaultAsync(); find.SatName = editItem.SatName; find.SatCode = editItem.SatCode; find.SatLon = editItem.SatLon; await db.SaveChangesAsync(); } return editItem; } catch (Exception ex) { Serilog.Log.Error(ex, "保存卫星信息异常"); DxHelper.MsgBoxHelper.ShowError("保存卫星信息异常"); return null; } } private async Task Delete(List list) { try { var ids = list.Select(p => p.ID); using (RHDWContext db = new RHDWContext()) { var delItems = await db.SatInfos.Where(p => ids.Contains(p.ID)).ToListAsync(); db.SatInfos.RemoveRange(delItems); await db.SaveChangesAsync(); } return true; } catch (Exception ex) { Serilog.Log.Error(ex, "删除卫星信息异常"); DxHelper.MsgBoxHelper.ShowError("删除卫星信息异常"); return false; } } } }