304 lines
8.7 KiB
C#
304 lines
8.7 KiB
C#
using OrpaonEMS.App.Dto;
|
|
using OrpaonEMS.App.Models;
|
|
using OrpaonEMS.Core;
|
|
using OrpaonEMS.Core.Enums;
|
|
using OrpaonEMS.Model;
|
|
using OrpaonEMS.Model.Enums;
|
|
using Prism.Commands;
|
|
using Prism.Services.Dialogs;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
|
|
namespace OrpaonEMS.App.ViewModels
|
|
{
|
|
public class TimeConfigViewModel : DialogViewModel
|
|
{
|
|
/// <summary>
|
|
/// freeSql实例
|
|
/// </summary>
|
|
private IFreeSql freeSql { get; set; }
|
|
|
|
/// <summary>
|
|
/// 实例化函数
|
|
/// </summary>
|
|
public TimeConfigViewModel(IFreeSql freeSql)
|
|
{
|
|
CbxTime = new List<cbxItem>()
|
|
{
|
|
new cbxItem(){ Key="1",Text="尖峰电价"},
|
|
new cbxItem(){ Key="2",Text="平段电价"},
|
|
new cbxItem(){ Key="3",Text="峰段电价"},
|
|
new cbxItem(){ Key="4",Text="谷段电价"}
|
|
};
|
|
|
|
this.freeSql = freeSql;
|
|
|
|
}
|
|
|
|
|
|
private string _SelectedElePvEnum;
|
|
/// <summary>
|
|
/// 选中的
|
|
/// </summary>
|
|
public string SelectedElePvEnum
|
|
{
|
|
get { return _SelectedElePvEnum; }
|
|
set { _SelectedElePvEnum = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
private DateTime _StartTime = DateTime.Now;
|
|
/// <summary>
|
|
/// 开始时间
|
|
/// </summary>
|
|
public DateTime StartTime
|
|
{
|
|
get { return _StartTime; }
|
|
set { _StartTime = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
private DateTime _EndTime = DateTime.Now;
|
|
/// <summary>
|
|
/// 结束时间
|
|
/// </summary>
|
|
public DateTime EndTime
|
|
{
|
|
get { return _EndTime; }
|
|
set { _EndTime = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
#region 公用命令
|
|
|
|
private DelegateCommand saveCmd;
|
|
/// <summary>
|
|
/// 保存命令
|
|
/// </summary>
|
|
public DelegateCommand SaveCmd
|
|
{
|
|
set
|
|
{
|
|
saveCmd = value;
|
|
}
|
|
get
|
|
{
|
|
if (saveCmd == null)
|
|
{
|
|
saveCmd = new DelegateCommand(() => SaveCmdMethod());
|
|
}
|
|
return saveCmd;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存命令方法
|
|
/// </summary>
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
private void SaveCmdMethod()
|
|
{
|
|
SelectedPeakValley.ElePV = GetElePVEnum(SelectedElePvEnum);
|
|
SelectedPeakValley.StartTime = StartTime.ToString("HH:mm");
|
|
SelectedPeakValley.EndTime = EndTime.ToString("HH:mm");
|
|
DialogParameters pars = new DialogParameters
|
|
{
|
|
{ "Model", SelectedPeakValley }
|
|
};
|
|
|
|
RaiseRequestClose(new DialogResult(ButtonResult.OK, pars));
|
|
}
|
|
|
|
private DelegateCommand cancelCmd;
|
|
/// <summary>
|
|
/// 保存命令
|
|
/// </summary>
|
|
public DelegateCommand CancelCmd
|
|
{
|
|
set
|
|
{
|
|
cancelCmd = value;
|
|
}
|
|
get
|
|
{
|
|
if (cancelCmd == null)
|
|
{
|
|
cancelCmd = new DelegateCommand(() => CancelCmdMethod());
|
|
}
|
|
return cancelCmd;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取消命令方法
|
|
/// </summary>
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
private void CancelCmdMethod()
|
|
{
|
|
RaiseRequestClose(new DialogResult(ButtonResult.Cancel));
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
private PeakValleyDto DtoConvert(PeakValleyConfig peakValley)
|
|
{
|
|
PeakValleyDto peakValleyDto = new PeakValleyDto();
|
|
|
|
peakValleyDto.Index = peakValley.Index;
|
|
peakValleyDto.Id = peakValley.Id;
|
|
peakValleyDto.StartTime = peakValley.StartTime;
|
|
peakValleyDto.EndTime = peakValley.EndTime;
|
|
peakValleyDto.ElePV = peakValley.ElePV;
|
|
peakValleyDto.Enable = peakValley.Enable;
|
|
peakValleyDto.Price = peakValley.Price;
|
|
|
|
return peakValleyDto;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 插入或者更新数据
|
|
/// </summary>
|
|
private void InsertOrUpdate(PeakValleyDto data)
|
|
{
|
|
if (data.Id != null && data.Enable == true)
|
|
{
|
|
var datainfo = freeSql.Select<PeakValleyConfig>().Where(a => a.Id == data.Id);
|
|
if (datainfo.Count() > 0)//存在就更新
|
|
{
|
|
freeSql.Update<PeakValleyConfig>()
|
|
.Set(a => a.StartTime, data.StartTime)
|
|
.Set(a => a.EndTime, data.EndTime)
|
|
.Set(a => a.Price, data.Price)
|
|
.Set(a => a.ElePV, data.ElePV)
|
|
.Where(a => a.Id == data.Id)
|
|
.ExecuteAffrows();
|
|
}
|
|
else//否则新增
|
|
{
|
|
freeSql.Insert<PeakValleyConfig>(new PeakValleyConfig()
|
|
{
|
|
ElePV = data.ElePV,
|
|
StartTime = data.StartTime,
|
|
Price = data.Price,
|
|
EndTime = data.EndTime,
|
|
Index = data.Index
|
|
}).ExecuteInserted();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
private List<cbxItem> _CbxTime;
|
|
/// <summary>
|
|
/// 时间信息下拉框
|
|
/// </summary>
|
|
public List<cbxItem> CbxTime
|
|
{
|
|
get { return _CbxTime; }
|
|
set { _CbxTime = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
|
|
private ElePVEnum GetElePVEnum(string data)
|
|
{
|
|
switch (data)
|
|
{
|
|
case "尖峰电价":
|
|
return ElePVEnum.TopPeak;
|
|
case "平段电价":
|
|
return ElePVEnum.Flat;
|
|
case "峰段电价":
|
|
return ElePVEnum.Peak;
|
|
case "谷段电价":
|
|
return ElePVEnum.Valley;
|
|
default:
|
|
return ElePVEnum.Flat;
|
|
}
|
|
}
|
|
|
|
private string GetElePVStr(ElePVEnum elePVEnum)
|
|
{
|
|
switch (elePVEnum)
|
|
{
|
|
case ElePVEnum.TopPeak:
|
|
return "尖峰电价";
|
|
case ElePVEnum.Peak:
|
|
return "峰段电价";
|
|
case ElePVEnum.Valley:
|
|
return "谷段电价";
|
|
case ElePVEnum.Flat:
|
|
return "平段电价";
|
|
default:
|
|
return "";
|
|
}
|
|
}
|
|
|
|
#region 下拉框选择
|
|
|
|
//private string _SelectedTime1;
|
|
///// <summary>
|
|
///// 时间信息下拉框
|
|
///// </summary>
|
|
//public string SelectedTime1
|
|
//{
|
|
// get { return _SelectedTime1; }
|
|
// set
|
|
// {
|
|
// _SelectedTime1 = value;
|
|
// if (_SelectedTime1 != "停用")
|
|
// {
|
|
// PeakValleyDto1.Enable = true;
|
|
// PeakValleyDto1.ElePV = GetElePVEnum(_SelectedTime1);
|
|
// }
|
|
// else
|
|
// {
|
|
// PeakValleyDto1.Enable = false;
|
|
// }
|
|
// RaisePropertyChanged();
|
|
// }
|
|
//}
|
|
|
|
#endregion
|
|
|
|
|
|
private PeakValleyConfig _SelectedPeakValley=new PeakValleyConfig();
|
|
/// <summary>
|
|
/// 选中的模型
|
|
/// </summary>
|
|
public PeakValleyConfig SelectedPeakValley
|
|
{
|
|
get { return _SelectedPeakValley; }
|
|
set { _SelectedPeakValley = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 窗口打开时的传递的参数
|
|
/// </summary>
|
|
/// <param name="parameters"></param>
|
|
public override void OnDialogOpened(IDialogParameters parameters)
|
|
{
|
|
var data = parameters.GetValue<PeakValleyConfig>("Model");
|
|
if (data != null)//修改
|
|
{
|
|
SelectedPeakValley = data;
|
|
StartTime = DateTime.Parse(SelectedPeakValley.StartTime);
|
|
EndTime = DateTime.Parse(SelectedPeakValley.EndTime);
|
|
SelectedElePvEnum = GetElePVStr(SelectedPeakValley.ElePV);
|
|
}
|
|
else//新增
|
|
{
|
|
SelectedPeakValley.Enable=true;
|
|
}
|
|
|
|
//SelectedElePvEnum = GetElePVStr(SelectedPeakValley.ElePV);
|
|
}
|
|
|
|
|
|
}
|
|
}
|