namespace Yw.WinFrmUI
{
public partial class SetHydroPumpDlg : DevExpress.XtraEditors.XtraForm
{
public SetHydroPumpDlg()
{
InitializeComponent();
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
this.layoutControl1.SetupLayoutControl();
this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
InitialLinkStatus();
}
///
/// 重载数据事件
///
public event Action> ReloadDataEvent;
//所有部件列表
private List _allParterList = null;
///
/// 绑定数据
///
public void SetBindingData(Yw.Model.HydroPumpInfo parter)
{
var allParterList = parter == null ? null : new List() { parter };
SetBindingData(allParterList);
}
///
/// 绑定数据
///
public void SetBindingData(List allParterList)
{
_allParterList = allParterList;
if (_allParterList != null && _allParterList.Count == 1)
{
var parter = _allParterList.First();
this.imgCmbLinkStatus.EditValue = parter.LinkStatus;
this.txtCurrentHz.EditValue = Math.Round(parter.RatedHz * parter.SpeedRatio, 1);
this.txtRatedQ.EditValue = parter.RatedQ;
this.txtRatedH.EditValue = parter.RatedH;
this.txtRatedP.EditValue = parter.RatedP;
this.txtRatedN.EditValue = parter.RatedN;
}
}
//初始化管段状态
private void InitialLinkStatus()
{
this.imgCmbLinkStatus.Properties.BeginUpdate();
this.imgCmbLinkStatus.Properties.Items.Clear();
this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Open), Yw.Hydro.LinkStatus.Open, -1);
this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Closed), Yw.Hydro.LinkStatus.Closed, -1);
this.imgCmbLinkStatus.Properties.EndUpdate();
}
//验证
private bool Valid()
{
this.dxErrorProvider1.ClearErrors();
if (this.imgCmbLinkStatus.EditValue == null)
{
this.dxErrorProvider1.SetError(this.imgCmbLinkStatus, "必选项");
return false;
}
if (this.txtCurrentHz.EditValue == null)
{
this.dxErrorProvider1.SetError(this.txtCurrentHz, "必填项");
return false;
}
if (this.txtRatedP.EditValue == null)
{
this.dxErrorProvider1.SetError(this.txtRatedP, "必填项");
return false;
}
return true;
}
//确定
private void GeneralOkAndCancelCtrl1_OkEvent()
{
if (_allParterList == null || _allParterList.Count < 1)
{
return;
}
if (!Valid())
{
return;
}
var linkStatus = this.imgCmbLinkStatus.EditValue.ToString();
var currentHz = double.Parse(this.txtCurrentHz.EditValue.ToString());
double? ratedQ = this.txtRatedQ.EditValue == null ? null : double.Parse(this.txtRatedQ.EditValue.ToString());
double? ratedH = this.txtRatedH.EditValue == null ? null : double.Parse(this.txtRatedH.EditValue.ToString());
var ratedP = double.Parse(this.txtRatedP.EditValue.ToString());
double? ratedN = this.txtRatedN.EditValue == null ? null : double.Parse(this.txtRatedN.EditValue.ToString());
_allParterList.ForEach(x =>
{
x.LinkStatus = linkStatus;
x.SpeedRatio = currentHz / x.RatedHz;
x.RatedQ = ratedQ;
x.RatedH = ratedH;
x.RatedP = ratedP;
x.RatedN = ratedN;
});
this.ReloadDataEvent?.Invoke(_allParterList);
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}