using DevExpress.Charts.Native;
|
using DevExpress.XtraEditors;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using PBS.Model;
|
|
namespace PBS.WinFrmUI
|
{
|
public partial class EditElectricDlg : DevExpress.XtraEditors.XtraForm
|
{
|
public EditElectricDlg()
|
{
|
InitializeComponent();
|
}
|
|
public event Func<List<Vmo.ElecPriceHourSetting>, Task<bool>> ReLoadDataevent;
|
|
private BindingList<Vmo.ElecPriceHourSetting> _allBindingHour = null;
|
|
public void SetBindingData(List<Vmo.ElecPriceHourSetting> elepriceHour)
|
{
|
if (elepriceHour == null)
|
return;
|
_allBindingHour = new BindingList<Vmo.ElecPriceHourSetting>();
|
if (elepriceHour != null && elepriceHour.Any())
|
{
|
foreach (var item in elepriceHour)
|
{
|
var model = new Vmo.ElecPriceHourSetting(item);
|
_allBindingHour.Add(model);
|
}
|
}
|
this.bindingSource1.DataSource = _allBindingHour;
|
}
|
|
//验证
|
private bool Virify()
|
{
|
var AllHour = _allBindingHour;
|
var hour = AllHour.OrderBy(x => x.EndHour).ToList();
|
var HourCount = hour.Count;
|
if (hour.First().StartHour != 0 || hour.Last().EndHour != 24)
|
{
|
XtraMessageBox.Show("开始时间和结束时间有误");
|
return false;
|
}
|
for (int x = 0; x < hour.Count - 1; x++)
|
{
|
var frist = hour[x];
|
var second = hour[x + 1];
|
var last = hour[hour.Count - 1];
|
if (second.StartHour == second.EndHour)
|
{
|
XtraMessageBox.Show("开始时间和结束时间相同");
|
return false;
|
}
|
if (frist.EndHour != second.StartHour)
|
{
|
XtraMessageBox.Show("时间输入有误");
|
return false;
|
}
|
}
|
return true;
|
}
|
|
//确定
|
private async void btnOk_Click(object sender, EventArgs e)
|
{
|
if (!Virify())
|
return;
|
var Eleprice = new List<Vmo.ElecPriceHourSetting>(_allBindingHour);
|
var isok = await this.ReLoadDataevent.Invoke(Eleprice);
|
if (isok == false)
|
{
|
XtraMessageBox.Show("编辑失败");
|
return;
|
}
|
XtraMessageBox.Show("编辑成功");
|
this.DialogResult = System.Windows.Forms.DialogResult.OK;
|
this.Close();
|
}
|
|
//行删除
|
private void gridView2_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
|
{
|
if (_allBindingHour == null || _allBindingHour.Count < 1)
|
return;
|
var row = this.gridView2.GetFocusedRow() as Vmo.ElecPriceHourSetting;
|
if (row == null)
|
return;
|
if (e.Column == this.colDelete)
|
_allBindingHour.Remove(row);
|
}
|
}
|
}
|