using HStation.WinFrmUI.PhartRelation;
using HStation.WinFrmUI.Xhs;
namespace HStation.WinFrmUI
{
public partial class TankSingleMatchingCtrl : DevExpress.XtraEditors.XtraUserControl
{
public TankSingleMatchingCtrl()
{
InitializeComponent();
this.gridView1.SetNormalView();
this.gridView3.SetNormalView();
}
public class PhartViewModel
{
public long ID { get; set; }
public string OtherName { get; set; }
public int Importance { get; set; }
public int SortCode { get; set; }
///
/// 容积曲线
///
public string VolCurve { get; set; }
///
/// 型号ID
///
public long MainID { get; set; }
}
public class CurvieInfo
{
public long? Dbid { get; set; }
public long? Curveid { get; set; }
// public Vmo.XhsTankMainPhartMappingExtensions Curveinfo { get; set; }
}
private List _allBindingList = null;
private BLL.AssetsTankMain _TankBll = null;
private List _allPhartList = null;
private readonly Lazy _bll_ex = new();
private HydroTankMatchingViewModel _pumpMatchingViewModel;
private List _currentCurvePoint;
public async void SetBindingData(HydroTankMatchingViewModel TankMatchingViewModel)
{
_pumpMatchingViewModel = TankMatchingViewModel;
_allBindingList = new List();
_TankBll = new BLL.AssetsTankMain();
var allAssetsPumpMain = await _TankBll.GetAll();
if (allAssetsPumpMain != null)
{
foreach (var Main in allAssetsPumpMain)
{
_allBindingList.Add(new TankSingleMatchingViewModel(Main));
}
}
this.TankSingleMatchingViewModelBindingSource.DataSource = _allBindingList;
this.searchControl1.Text = _pumpMatchingViewModel.ModelType;
for (int i = 0; i < _allBindingList.Count; i++)
{
if (long.TryParse(TankMatchingViewModel.DbId, out long dbID))
{
if (_allBindingList[i].ID == dbID)
{
this.gridView3.FocusedRowHandle = i;
}
}
}
_currentCurvePoint = new List();
}
//阀门型号列表选择项切换事件
private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
_allPhartList = new List();
var vm = this.gridView3.GetCurrentViewModel(_allBindingList);
if (vm != null)
{
_pumpMatchingViewModel.MatchingDbId = vm.ID.ToString();
_pumpMatchingViewModel.MatchingModelType = vm.Name.ToString();
_pumpMatchingViewModel.MatchingMaxLevel = vm.MaxLevel;
_pumpMatchingViewModel.MatchingMinLevel = vm.MinLevel;
_pumpMatchingViewModel.MatchingDN = vm.DN;
_pumpMatchingViewModel.MatchingMinVol = vm.MinVol;
var list = await _bll_ex.Value.GetByMainID(vm.ID);
if (list != null && list.Any())
{
foreach (var item in list)
{
_allPhartList.Add(new PhartViewModel { ID = item.ID, VolCurve = item.VolCurve, MainID = item.MainID,OtherName="默认曲线",Importance=1 });
}
}
}
if (_pumpMatchingViewModel.MatchingCurveDbId != null)
{
for (int i = 0; i < _allPhartList.Count; i++)
{
if (_allBindingList[i].ID.ToString() == _pumpMatchingViewModel.MatchingCurveDbId)
{
gridView1.FocusedRowHandle = i;
}
}
}
this.gridControl1.DataSource = _allPhartList;
this.gridView1.FocusInvalidRow();
}
//查看曲线
private async void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
if (e.Column == this.ColShowChart)
{
var vm = this.gridView1.GetCurrentViewModel(_allPhartList);
var vmo = await _bll_ex.Value.GetByID(vm.ID);
if (vmo != null)
{
var dlg = new TankChartShowDlg();
dlg.InitChart(vmo.VolCurve);
dlg.ShowDialog();
}
return;
}
}
private async void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
var vm = this.gridView1.GetCurrentViewModel(_allPhartList);
_currentCurvePoint.Clear();
if (vm == null)
return;
var vmo = await _bll_ex.Value.GetByID(vm.ID);
if (vmo != null)
{
_pumpMatchingViewModel.MatchingCurveDbId = vm.MainID.ToString();
var pt_list = Yw.JsonHelper.Json2Object>(vm.VolCurve);
_pumpMatchingViewModel.MatchingVolCurve = pt_list;
}
}
}
}