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.Repostory.EFContext;
using XdCxRhDW.Repostory.Model;
namespace XdCxRhDW.App.UserControl
{
public partial class CtrlTarget : DevExpress.XtraEditors.XtraUserControl
{
List list = new List();
public CtrlTarget()
{
InitializeComponent();
}
private async void CtrlSat_Load(object sender, EventArgs e)
{
try
{
gridTar.Init().UseSort().UseFilter().UseMultiSelect().UseRowNumber();
gridTar.DataSource = list;
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 void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
{
if (gridView1.GetSelectedRows().Any())
{
btnDel.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
btnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
}
else
{
btnDel.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
btnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
}
popupMenu1.ShowPopup(MousePosition);
}
private async void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
TargetEditor frm = new TargetEditor();
if (frm.ShowDialog() != DialogResult.OK) return;
var addItem = frm.info;
using (RHDWContext db = new RHDWContext())
{
db.TargetInfos.Add(addItem);
await db.SaveChangesAsync();
}
list.Add(addItem);
gridView1.RefreshData();
}
catch (Exception ex)
{
Serilog.Log.Error(ex, "添加目标信息异常");
DxHelper.MsgBoxHelper.ShowError("添加目标信息异常");
}
}
private async void btnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
var editItem = gridView1.GetFocusedRow() as TargetInfo;
TargetEditor frm = new TargetEditor(editItem);
if (frm.ShowDialog() != DialogResult.OK) return;
editItem = frm.info;
using (RHDWContext db = new RHDWContext())
{
var find = await db.TargetInfos.Where(p => p.ID == editItem.ID).FirstOrDefaultAsync();
find.TargetName = editItem.TargetName;
await db.SaveChangesAsync();
}
gridView1.RefreshData();
}
catch (Exception ex)
{
Serilog.Log.Error(ex, "保存目标信息异常");
DxHelper.MsgBoxHelper.ShowError("保存目标信息异常");
}
}
private async void btnDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
if (XtraMessageBox.Show("确认删除选择得目标信息?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
{
return;
}
var ids = gridView1.GetSelectedRows();
using (RHDWContext db = new RHDWContext())
{
foreach (var id in ids)
{
var item = gridView1.GetRow(id) as TargetInfo;
var delItem = await db.TargetInfos.Where(p => p.ID == item.ID).FirstOrDefaultAsync();
if (delItem != null)
db.TargetInfos.Remove(delItem);
}
await db.SaveChangesAsync();
}
gridView1.DeleteSelectedRows();
}
catch (Exception ex)
{
Serilog.Log.Error(ex, "删除目标信息异常");
DxHelper.MsgBoxHelper.ShowError("删除目标信息异常");
}
}
private void gridView1_CustomDrawEmptyForeground(object sender, DevExpress.XtraGrid.Views.Base.CustomDrawEventArgs e)
{
if (gridView1.RowCount == 0)
{
string txt = "右键添加目标";
var s = e.Appearance.CalcTextSize(e.Cache, txt, e.Bounds.Width).ToSize();
var x = (e.Bounds.Width - s.Width) / 2;
var y = (e.Bounds.Height - s.Height) / 2;
e.Appearance.ForeColor = Color.Gray;
e.Appearance.DrawString(e.Cache, txt, new Rectangle(x, y, s.Width, s.Height));
}
}
}
}