using HStation.Dto;
using HStation.WinFrmUI.Xhs.Project;
using ISupply.WinFrmUI;
namespace HStation.WinFrmUI
{
public partial class XhsProjectListPage : DocumentPage
{
public XhsProjectListPage()
{
InitializeComponent();
this.PageTitle.Caption = "项目管理";
this.gridView1.SetNormalView();
this.gridView1.RegistCustomDrawRowIndicator();
}
///
/// 初始化数据
///
public override void InitialDataSource()
{
SetBindingData();
}
private new BLL.XhsProject _bll = new BLL.XhsProject();
private List _allBindingList = new List();
private async void SetBindingData()
{
var alllist = await _bll.GetAll();
if (alllist != null)
{
foreach (var item in alllist)
{
_allBindingList.Add(new ProjectViewModel(item));
}
}
this.projectViewModelBindingSource.DataSource = _allBindingList;
this.projectViewModelBindingSource.ResetBindings(false);
}
//添加
private async void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var dlg = new AddProjectDlg();
dlg.ReloadEvent += async (pro, item, model, map) =>
{
var id = await _bll.InsertEx(pro, item, model, map);
if (id > 0)
{
var vmmodel = await _bll.GetByID(id);
_allBindingList.Add(new ProjectViewModel(vmmodel));
this.projectViewModelBindingSource.ResetBindings(false);
return true;
}
return false;
};
dlg.ShowDialog();
}
//修改
private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
MessageBoxHelper.ShowError("请选择数据行!");
return;
}
var dlg = new EditProjectDlg();
dlg.SetBindingData(vm.ID);
dlg.ReloadEvent += async (prj, item) =>
{
if (await _bll.UpdateEx(prj, item))
{
vm.Reset(prj);
this.projectViewModelBindingSource.ResetBindings(false);
return true;
}
return false;
};
dlg.ShowDialog();
}
//删除
private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
MessageBoxHelper.ShowError("请选择数据行!");
return;
}
if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示", MessageBoxButtons.OKCancel))
return;
var result = await _bll.DeleteEx(vm.ID);
if (!result)
{
MessageBoxHelper.ShowError($"删除失败!", "警告");
return;
}
MessageBoxHelper.ShowSuccess($"删除成功!");
_allBindingList.Remove(vm);
this.projectViewModelBindingSource.ResetBindings(false);
}
//使用状态
private void BtnUpdateUseStatus_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
MessageBoxHelper.ShowWarning("请选择数据行!");
return;
}
var dlg = new SetUseStatusDlg();
dlg.SetBindingData(vm.UseStatus);
dlg.ReloadDataEvent += async (useStatus) =>
{
var result = await _bll.UpdateUseStatus(vm.ID, (int)useStatus);
if (result)
{
vm.UseStatus = useStatus;
vm.Reset(vm);
this.projectViewModelBindingSource.ResetBindings(false);
}
return result;
};
dlg.ShowDialog();
}
//设置排序码
private void BtnUpdateSortCode_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
MessageBoxHelper.ShowWarning("请选择数据行!");
return;
}
var dlg = new SetSortCodeDlg();
dlg.SetBindingData(vm.SortCode);
dlg.ReloadDataEvent += async (sortCode) =>
{
var result = await _bll.UpdateSortCode(vm.ID, sortCode);
if (result)
{
vm.SortCode = sortCode;
vm.Reset(vm);
this.projectViewModelBindingSource.ResetBindings(false);
}
return result;
};
dlg.ShowDialog();
}
}
}