using ivf_tl_Operate.Converts;
using ivf_tl_Operate.CustomUserControls;
using ivf_tl_Operate.ViewModel;
using ivf_tl_Operate.Windows;
using OxyPlot.Series;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ivf_tl_Operate.View
{
///
/// ChartPageView.xaml 的交互逻辑
///
public partial class ChartPageView : UserControl
{
private ChartPageViewModel vm;
private List chartButtons = new List();
private DateTime lastSelectTime;
public ChartPageView(int houseId)
{
InitializeComponent();
chartButtons.Add(_chartButton1);
chartButtons.Add(_chartButton2);
chartButtons.Add(_chartButton3);
chartButtons.Add(_chartButton4);
chartButtons.Add(_chartButton5);
chartButtons.Add(_chartButton6);
chartButtons.Add(_chartButton7);
chartButtons.Add(_chartButton8);
chartButtons.Add(_chartButton9);
chartButtons.Add(_chartButton10);
Loaded += (s, e) =>
{
vm = this.DataContext as ChartPageViewModel;
if (vm == null) return;
vm.RightDate = DateTime.Now;
vm.LeftDate = vm.RightDate.Date;
//chartButtons.ForEach(item =>
//{
// item.IsSelected = false;
// if (item.Tag == (object)houseId) item.IsSelected = true;
//});
var aa = chartButtons.FirstOrDefault(x => x.Tag.ToString() == houseId.ToString());
if (aa == null)
{
vm.CurrentHouseId = 1;
_chartButton1.IsSelected = true;
}
else
{
vm.CurrentHouseId = houseId;
aa.IsSelected = true;
}
SelectHouseHistory();
};
Unloaded += (s, e) =>
{
if (vm != null)
{
vm.isClose = true;
vm = null;
}
this.DataContext = null;
_root.Children.Clear();
};
}
private void restHisPlot(object sender, MouseButtonEventArgs e)
{
}
private void weekHis(object sender, MouseButtonEventArgs e)
{
var now = DateTime.Now;
var span = now - lastSelectTime;
if (span.TotalSeconds <= 1) return;
lastSelectTime = DateTime.Now;
vm.RightDate = DateTime.Now;
vm.LeftDate = vm.RightDate.AddDays(-6);
SelectHouseHistory();
}
private void weekHis1(object sender, MouseButtonEventArgs e)
{
}
private void ScrollViewer_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
}
private void Return_Click(object sender, RoutedEventArgs e)
{
AppData.Instance.BackMainPage();
}
private void Border_MouseUp(object sender, MouseButtonEventArgs e)
{
GetDateWindow getDate = new GetDateWindow(AppData.Instance.MainWindow);
getDate.SetSelectTime(Convert.ToDateTime(vm.LeftDate));
AppData.Instance.MainWindow.Mark(true);
var result = getDate.ShowDialog();
AppData.Instance.MainWindow.Mark(false);
if (result.Value == true)
{
DateTime dateTime = Convert.ToDateTime(getDate.Date);
if (dateTime > DateTime.Now) dateTime = DateTime.Now;
vm.LeftDate = dateTime;
}
}
private void Border_MouseUp_GetRightDate(object sender, MouseButtonEventArgs e)
{
GetDateWindow getDate = new GetDateWindow(AppData.Instance.MainWindow);
getDate.SetSelectTime(Convert.ToDateTime(vm.RightDate));
AppData.Instance.MainWindow.Mark(true);
var result = getDate.ShowDialog();
AppData.Instance.MainWindow.Mark(false);
if (result.Value == true)
{
DateTime dateTime = Convert.ToDateTime(getDate.Date).AddDays(1).AddSeconds(-1);
if (dateTime > DateTime.Now) dateTime = DateTime.Now;
vm.RightDate = dateTime;
}
}
private void Border_MouseUp_1(object sender, MouseButtonEventArgs e)
{
var now = DateTime.Now;
var span = now - lastSelectTime;
if (span.TotalSeconds <= 1) return;
lastSelectTime = now;
SelectHouseHistory();
}
private void _chartButton1_MouseUp(object sender, MouseButtonEventArgs e)
{
if (!(sender is ChartButton button)) return;
chartButtons.ForEach(item => item.IsSelected = false);
button.IsSelected = true;
if (button.Tag == null) return;
if (int.TryParse(button.Tag.ToString(), out int id))
{
var now = DateTime.Now;
var span = now - lastSelectTime;
if (span.TotalSeconds <= 1 || vm.CurrentHouseId == id) return;
lastSelectTime = now;
vm.CurrentHouseId = id;
vm.TemperatureRealDataPoints.Clear();
vm.PressureRealDataPoints.Clear();
//LineSeries realTempratureSeries = vm.RealModel.Series[0] as LineSeries;
//LineSeries realPressureSeries = vm.RealModel.Series[1] as LineSeries;
//realTempratureSeries.Points.Clear();
//realPressureSeries.Points.Clear();
SelectHouseHistory();
}
}
private void SelectHouseHistory()
{
if (vm == null) return;
Task.Run(() =>
{
//vm.HistoryTitle = $"{vm.CurrentHouseId}号舱室温压历史曲线";
//vm.RealTitle = $"{vm.CurrentHouseId}号舱室温压实时曲线";
vm.HistoryTitle = $"{vm.CurrentHouseId}{KeyToStringConvert.GetLanguageStringByKey("C0255")}";
vm.RealTitle = $"{vm.CurrentHouseId}{KeyToStringConvert.GetLanguageStringByKey("C0256")}";
//var list = new HouseHistoryProvider().FindAllNoAir(vm.CurrentHouseId, vm.LeftDate, vm.RightDate);
//if (list == null || list.Count < 5)
//{
// App.Current.Dispatcher.BeginInvoke(new Action(() =>
// {
// new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "暂无数据");
// }));
// return;
//}
App.Current.Dispatcher.BeginInvoke(() =>
{
if (vm.LeftDate > vm.RightDate)
{
//new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "开始日期不能大于结束日期");
new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0257"));
return;
}
vm.RefHistroy();
});
});
}
}
}