using Yw.EPAnet;
using Yw.EPAnet.Calcu;
namespace Yw.WinFrmUI
{
///
///
///
public partial class HydroModelMgrPage : DocumentPage
{
public HydroModelMgrPage()
{
InitializeComponent();
this.gridView1.SetNormalView();
this.gridView1.RegistCustomDrawRowIndicator();
this.PageTitle.Caption = "水力模型";
this.PageTitle.HeaderSvgImage = this.svgImage32[0];
this.PageTitle.SvgImageSize = new Size(24, 24);
}
///
/// 查看模型事件
///
public event Action ViewModelEvent;
///
/// 计算模型事件
///
public event Action CalcuModelEvent;
///
/// 校验模型事件
///
public event Action ValidModelEvent;
private List _allBindingList = null;
private Lazy _bll = new(() => new Yw.BLL.HydroModel());
private Lazy _bllRelation = new(() => new Yw.BLL.HydroModelRelation());
//加载数据
private async Task LoadData()
{
var allBindingList = await _bll.Value.GetAll();
var allBindingRelationList = await _bllRelation.Value.GetAll();
_allBindingList = new List();
if (allBindingList != null && allBindingList.Count > 0)
{
foreach (var item in allBindingList)
{
var hasRelation = allBindingRelationList == null ? false : allBindingRelationList.Exists(x => x.ModelID == item.ID);
var vm = new HydroModelMgrViewModel(item, hasRelation);
_allBindingList.Add(vm);
}
}
this.hydroModelMgrViewModelBindingSource.DataSource = _allBindingList;
this.hydroModelMgrViewModelBindingSource.ResetBindings(false);
}
///
///初始化数据
///
public override async void InitialDataSource()
{
base.InitialDataSource();
await LoadData();
}
///
/// 刷新数据
///
public override async void RefreshData()
{
base.RefreshData();
await LoadData();
}
///
/// 查看模型
///
protected virtual void ViewModel(Yw.Dto.HydroModelDto dto)
{
}
///
/// 计算模型
///
protected virtual async void CalcuModel(Yw.Dto.HydroModelDto dto)
{
var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
var netWork = Yw.Hydro.ParseHelper.ToNetwork(info);
var list = netWork.Calcu();
}
///
/// 校验模型
///
protected virtual void ValidModel(Yw.Dto.HydroModelDto dto)
{
}
#region 当前
//获取当前视图
private HydroModelMgrViewModel GetCurrentViewModel()
{
if (_allBindingList == null)
{
Yw.WinFrmUI.MessageBoxHelper.ShowError("数据初始化错误!");
return null;
}
if (_allBindingList.Count < 1)
{
Yw.WinFrmUI.MessageBoxHelper.ShowInfo("无数据");
return null;
}
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
Yw.WinFrmUI.MessageBoxHelper.ShowInfo("请选择数据行");
return null;
}
return vm;
}
#endregion
#region Ribbon
//添加
private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//编辑
private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//删除
private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//详细信息
private void barBtnDetail_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//模型查看
private void barBtnViewModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
ViewModel(vm.Dto);
this.ViewModelEvent?.Invoke(vm.Dto);
}
//模型计算
private void barBtnCalcuModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
CalcuModel(vm.Dto);
this.CalcuModelEvent?.Invoke(vm.Dto);
}
//模型校验
private void barBtnValidModel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
ValidModel(vm.Dto);
this.ValidModelEvent?.Invoke(vm.Dto);
}
//上移
private void barBtnUp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//下移
private void barBtnDown_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
//刷新
private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
}
#endregion
}
}