using DevExpress.CodeParser;
|
using DevExpress.Utils.About;
|
using DevExpress.XtraEditors;
|
using Yw.EPAnet;
|
using Yw.WinFrmUI.Page;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
///
|
/// </summary>
|
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);
|
}
|
|
/// <summary>
|
/// 查看模型事件
|
/// </summary>
|
public event Action<Yw.Dto.HydroModelDto> ViewModelEvent;
|
|
/// <summary>
|
/// 计算模型事件
|
/// </summary>
|
public event Action<Yw.Dto.HydroModelDto> CalcuModelEvent;
|
|
/// <summary>
|
/// 校验模型事件
|
/// </summary>
|
public event Action<Yw.Dto.HydroModelDto> ValidModelEvent;
|
|
private List<HydroModelMgrViewModel> _allBindingList = null;
|
private Lazy<Yw.BLL.HydroModel> _bll = new(() => new Yw.BLL.HydroModel());
|
private Lazy<Yw.BLL.HydroModelRelation> _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<HydroModelMgrViewModel>();
|
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);
|
}
|
|
/// <summary>
|
///初始化数据
|
/// </summary>
|
public override async void InitialDataSource()
|
{
|
base.InitialDataSource();
|
await LoadData();
|
}
|
|
/// <summary>
|
/// 刷新数据
|
/// </summary>
|
public override async void RefreshData()
|
{
|
base.RefreshData();
|
await LoadData();
|
}
|
|
/// <summary>
|
/// 查看模型
|
/// </summary>
|
protected virtual async void ViewModel(Yw.Dto.HydroModelDto dto)
|
{
|
var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
|
var guid = new PageGuid()
|
{
|
Modular = "Hydro",
|
MoudingType = eMoudingType.Tab,
|
Function = "HydroQ3d",
|
TagName = info.ID.ToString()
|
};
|
if (!IsExistPage(guid, true))
|
{
|
var page = new HydroQ3dViewPage();
|
page.SetBindingData(info);
|
CreatePage(page, guid);
|
}
|
}
|
|
/// <summary>
|
/// 计算模型
|
/// </summary>
|
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();
|
XtraMessageBox.Show(JsonHelper.Object2FormatJson(list));
|
}
|
|
/// <summary>
|
/// 校验模型
|
/// </summary>
|
protected virtual async void ValidModel(Yw.Dto.HydroModelDto dto)
|
{
|
var info = await new Yw.BLL.HydroModelInfo().GetByID(dto.ID);
|
var netWork = Yw.Hydro.ParseHelper.ToNetwork(info);
|
var result = netWork.Check();
|
XtraMessageBox.Show(JsonHelper.Object2FormatJson(result));
|
}
|
|
|
#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);
|
}
|
|
//导出inp
|
private async void barBtnExportInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var vm = GetCurrentViewModel();
|
if (vm == null)
|
{
|
return;
|
}
|
var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID);
|
var netWork = Yw.Hydro.ParseHelper.ToNetwork(info);
|
var result = netWork.ToInpString();
|
XtraMessageBox.Show(result);
|
}
|
|
//组件
|
private async void barBtnParter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var vm = GetCurrentViewModel();
|
if (vm == null)
|
{
|
return;
|
}
|
var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID);
|
var dlg = new HydroParterListDlg();
|
dlg.SetBindingData(info);
|
dlg.Show();
|
}
|
|
//上移
|
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
|
|
|
|
|
|
private async void barBtnTest_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var vm = GetCurrentViewModel();
|
if (vm == null)
|
{
|
return;
|
}
|
var info = await new Yw.BLL.HydroModelInfo().GetByID(vm.ID);
|
var guid = new PageGuid()
|
{
|
Modular = "Hydro",
|
MoudingType = eMoudingType.Tab,
|
Function = "HydroL2d",
|
TagName = info.ID.ToString()
|
};
|
if (!IsExistPage(guid, true))
|
{
|
var page = new HydroL2dViewPage();
|
page.SetBindingData(info);
|
CreatePage(page, guid);
|
}
|
}
|
}
|
}
|