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).UseMultiSelect().UseRowNumber(); 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; string baseUrl = null; using (RHDWContext db = new RHDWContext()) { var res = await db.SysSetings.FirstOrDefaultAsync(); if (res != null) { baseUrl = $"http://{IpHelper.GetLocalIp()}:{res.HttpPort}/api/"; } } if (baseUrl == null) { MsgBoxHelper.ShowError("请在系统设置中配置Http端口"); this.layoutControl1.Enabled = true; return; } string file; try { file = await HttpHelper.UploadFileAsync(btnOpen.Text, baseUrl + "File/UploadFileAsync"); } 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(baseUrl + "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 void btnDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { if (XtraMessageBox.Show("确认删除选择的星历信息?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Enabled = false; await Task.Run(async () => { var ids = gridView1.GetSelectedRows(); List list = new List(); foreach (var idx in ids) { var item = gridView1.GetRow(idx) as XlInfo; list.Add(item); } var dayIds = list.Select(p => p.ID).ToList(); using (RHDWContext db = new RHDWContext()) { var delItems = await db.XlInfos.Where(p => dayIds.Contains(p.ID)).ToListAsync(); db.XlInfos.RemoveRange(delItems); await db.SaveChangesAsync(); } }); gridView1.DeleteSelectedRows(); } catch (Exception ex) { Serilog.Log.Error(ex, "删除选中的星历时异常"); DxHelper.MsgBoxHelper.ShowError("删除选中的星历时异常"); } finally { this.Enabled = true; } } private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (gridView1.FocusedRowObject != null) popupMenu1.ShowPopup(MousePosition); } } }