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 _allVisualList = null;//所有部件列表
private HydroChangeHelper _changeHelper = null;//改变辅助类
private HydroPropStatusHelper _propStatusHelper = null;//属性状态辅助类
///
/// 绑定数据
///
public void SetBindingData
(
Yw.Model.HydroPumpInfo visual,
HydroChangeHelper changeHelper = null,
HydroPropStatusHelper propStatusHelper = null
)
{
var allVisualList = visual == null ? null : new List() { visual };
SetBindingData(allVisualList, changeHelper, propStatusHelper);
}
///
/// 绑定数据
///
public void SetBindingData
(
List allVisualList,
HydroChangeHelper changeHelper = null,
HydroPropStatusHelper propStatusHelper = null
)
{
_allVisualList = allVisualList;
_changeHelper = changeHelper;
_propStatusHelper = propStatusHelper;
if (_allVisualList != null && _allVisualList.Count == 1)
{
var visual = _allVisualList.First();
this.txtBeginGroup.EditValue = visual.BeginGroup;
this.txtElev.EditValue = Math.Round(visual.Elev, 4);
this.imgCmbLinkStatus.EditValue = visual.LinkStatus;
this.txtCurrentHz.EditValue = Math.Round(visual.RatedHz * visual.SpeedRatio, 1);
this.txtRatedQ.EditValue = visual.RatedQ;
this.txtRatedH.EditValue = visual.RatedH;
this.txtRatedP.EditValue = visual.RatedP;
this.txtRatedN.EditValue = visual.RatedN;
this.txtInletDiameter.EditValue = visual.InletDiameter;
this.txtOutletDiameter.EditValue = visual.OutletDiameter;
}
}
//初始化管段状态
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 void GeneralOkAndCancelCtrl1_OkEvent()
{
if (_allVisualList == null || _allVisualList.Count < 1)
{
return;
}
var beginGroup = this.txtBeginGroup.Text.Trim();
double? elev = this.txtElev.EditValue == null ? null : double.Parse(this.txtElev.EditValue.ToString());
var linkStatus = this.imgCmbLinkStatus.EditValue?.ToString();
double? currentHz = this.txtCurrentHz.EditValue == null ? null : 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());
double? ratedP = this.txtRatedP.EditValue == null ? null : double.Parse(this.txtRatedP.EditValue.ToString());
double? ratedN = this.txtRatedN.EditValue == null ? null : double.Parse(this.txtRatedN.EditValue.ToString());
double? inletDiameter = this.txtInletDiameter.EditValue == null ? null : double.Parse(this.txtInletDiameter.EditValue.ToString());
double? outletDiameter = this.txtOutletDiameter.EditValue == null ? null : double.Parse(this.txtOutletDiameter.EditValue.ToString());
_allVisualList.ForEach(x =>
{
if (!string.IsNullOrEmpty(beginGroup))
{
if (x.BeginGroup != beginGroup)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.BeginGroup), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.BeginGroup = beginGroup;
}
if (elev.HasValue)
{
if (x.Elev != elev.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.Elev), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.Elev = elev.Value;
}
if (!string.IsNullOrEmpty(linkStatus))
{
if (x.LinkStatus != linkStatus)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.LinkStatus), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.LinkStatus = linkStatus;
}
if (currentHz.HasValue)
{
var speedRatio = currentHz.Value / x.RatedHz;
if (x.SpeedRatio != speedRatio)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.SpeedRatio), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.SpeedRatio = speedRatio;
}
if (ratedQ.HasValue)
{
if (x.RatedQ != ratedQ.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.RatedQ), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.RatedQ = ratedQ.Value;
}
if (ratedH.HasValue)
{
if (x.RatedH != ratedH.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.RatedH), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.RatedH = ratedH.Value;
}
if (ratedP.HasValue)
{
if (x.RatedP != ratedP.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.RatedP), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.RatedP = ratedP.Value;
}
if (ratedN.HasValue)
{
if (x.RatedN != ratedN.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.RatedN), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.RatedN = ratedN.Value;
}
if (inletDiameter.HasValue)
{
if (x.InletDiameter != inletDiameter.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.InletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.InletDiameter = inletDiameter.Value;
}
if (outletDiameter.HasValue)
{
if (x.OutletDiameter != outletDiameter.Value)
{
_changeHelper.Append(x, eChangeType.Update);
_propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.OutletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
}
x.OutletDiameter = outletDiameter.Value;
}
});
this.ReloadDataEvent?.Invoke(_allVisualList);
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}