using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Entity; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ExtensionsDev; using System.Windows.Documents; using XdCxRhDW.Repostory; using XdCxRhDW.Dto; using DxHelper; using XdCxRhDW.Entity; namespace XdCxRhDW.App.UserControl { public partial class CtrlXl : DevExpress.XtraEditors.XtraUserControl { List list = new List(); public CtrlXl() { InitializeComponent(); this.layoutControl1.UseDefault(); btnOpen.UseChooseFile().UseDoubleClickToSelectAll(); } private async void CtrlXl_Load(object sender, EventArgs e) { gridXl.UseDefault(list).UseRowNumber().UseDeleteAsync(Del).UseExportXlsx(); await LoadData(); } public async Task LoadData() { try { list.Clear(); list.AddRange(await XlRepository.GetAllAsync()); gridView1.RefreshData(); } catch (Exception ex) { Serilog.Log.Error(ex, "加载星历信息异常"); DxHelper.MsgBoxHelper.ShowError("加载星历信息异常"); } } private async void btnImp_Click(object sender, EventArgs e) { this.layoutControl1.Enabled = false; if (string.IsNullOrEmpty(btnOpen.Text)) { Serilog.Log.Warning($"请选择星历文件"); DxHelper.MsgBoxHelper.ShowInfo($"请选择星历文件"); this.layoutControl1.Enabled = true; return; } string file; try { file = await HttpHelper.UploadFileAsync(btnOpen.Text, SysConfig.GetBaseUrl()); } catch (Exception ex) { layoutControl1.Enabled = true; Serilog.Log.Error(ex, ex.Message); DxHelper.MsgBoxHelper.ShowError(ex.Message); return; } try { XlImportDto dto = new XlImportDto() { File = file }; var result = await HttpHelper.PostRequestAsync(SysConfig.GetUrl("Xl/ImportTleAsync"), dto, 120); if (result.code == 200) { DxHelper.MsgBoxHelper.ShowInfo($"星历导入成功.共导入{result.data.Count}条"); await LoadData(); } else { Serilog.Log.Error(result.msg); DxHelper.MsgBoxHelper.ShowError("星历导入失败!"); } } catch (TaskCanceledException) { Serilog.Log.Warning($"星历导入超时"); DxHelper.MsgBoxHelper.ShowInfo($"星历导入超时"); return; } catch (Exception ex) { Serilog.Log.Error(ex, "星历导入异常"); } this.layoutControl1.Enabled = true; } private async Task Del(List list) { try { this.Enabled = false; var ids = list.Select(p => p.ID); using (RHDWContext db = new RHDWContext()) { var delItems = await db.XlInfos.Where(p => ids.Contains(p.ID)).ToListAsync(); db.XlInfos.RemoveRange(delItems); await db.SaveChangesAsync(); } return true; } catch (Exception ex) { Serilog.Log.Error(ex, "删除选中的星历时异常"); DxHelper.MsgBoxHelper.ShowError("删除选中的星历时异常"); return false; } finally { this.Enabled = true; } } } }