| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- using Prism.Commands;
- using Prism.Ioc;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Data;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using TeamAAS_VM.Data;
- using TeamAAS_VP.Core;
- using TeamAAS_VP.Data;
- using TeamAAS_VP.Interfaces;
- using TeamAAS_VP.Models;
- using TeamAAS_VP.Views.Product;
- namespace TeamAAS_VP.ViewModels.Statistics
- {
- public class AlarmQueryViewModel : BindableBase
- {
- IContainerProvider _container;
- ISystemDatabaseService _systemDatabaseService;
- #region 属性
- private DataTable _dataTable;
- public DataTable DataTable
- {
- get { return _dataTable; }
- set { SetProperty(ref _dataTable, value); }
- }
- private DateTime? _StartDate;
- public DateTime? StartDate
- {
- get { return _StartDate; }
- set { SetProperty(ref _StartDate, value); }
- }
- private DateTime? _StartTime;
- public DateTime? StartTime
- {
- get { return _StartTime; }
- set { SetProperty(ref _StartTime, value); }
- }
- private DateTime? _EndDate;
- public DateTime? EndDate
- {
- get { return _EndDate; }
- set { SetProperty(ref _EndDate, value); }
- }
- private DateTime? _EndTime;
- public DateTime? EndTime
- {
- get { return _EndTime; }
- set { SetProperty(ref _EndTime, value); }
- }
- private bool _isSearch = false;
- public bool isSearch
- {
- get { return _isSearch; }
- set { SetProperty(ref _isSearch, value); }
- }
- #endregion
- #region 命令
- private DelegateCommand _LoadedCommand;
- public DelegateCommand LoadedCommand =>
- _LoadedCommand ?? (_LoadedCommand = new DelegateCommand(ExecuteLoadedCommand));
- private DelegateCommand _SearchCommand;
- public DelegateCommand SearchCommand =>
- _SearchCommand ?? (_SearchCommand = new DelegateCommand(ExecuteSearchCommand, CanSearch)
- .ObservesProperty(() => StartDate).ObservesProperty(() => StartTime)
- .ObservesProperty(() => EndDate).ObservesProperty(() => EndTime).ObservesProperty(() => isSearch));
- private DelegateCommand _SaveCommand;
- public DelegateCommand SaveCommand =>
- _SaveCommand ?? (_SaveCommand = new DelegateCommand(ExecuteSaveCommand, CanSave).ObservesProperty(() => DataTable).ObservesProperty(() => isSearch));
- #endregion
- #region 事件
- #endregion
- public AlarmQueryViewModel(IContainerProvider container,ISystemDatabaseService systemDatabaseService)
- {
- _container = container;
- _systemDatabaseService = systemDatabaseService;
- }
- #region 方法
- void ExecuteLoadedCommand()
- {
- if (StartDate == null)
- {
- StartDate = DateTime.Now;
- }
- if (StartTime == null)
- {
- StartTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
- }
- if (EndDate == null)
- {
- EndDate = DateTime.Now;
- }
- if (EndTime == null)
- {
- EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
- }
- }
- /// <summary>
- /// 查询
- /// </summary>
- async void ExecuteSearchCommand()
- {
- DateTime dt1 = new DateTime(StartDate.Value.Year, StartDate.Value.Month, StartDate.Value.Day, StartTime.Value.Hour, StartTime.Value.Minute, StartTime.Value.Second);
- DateTime dt2 = new DateTime(EndDate.Value.Year, EndDate.Value.Month, EndDate.Value.Day, EndTime.Value.Hour, EndTime.Value.Minute, EndTime.Value.Second);
- isSearch = true;
- var alarms=await _systemDatabaseService.QueryAlarmsAsync(dt1, dt2);
- //将查询结果转换为DataTable
- DataTable = DataTableHelper.ToDataTable(alarms);
- isSearch = false;
- }
- /// <summary>
- /// 保存
- /// </summary>
- async void ExecuteSaveCommand()
- {
- isSearch = true;
- try
- {
- //打开一个保存对话框,选择保存路径
- //将DataTable报错到本地路径中,保存的文件名为“产品名称_开始时间_结束时间.csv”
- string startTime = " "; //开始时间
- string endTime = " "; //结束时间
- if (StartDate != null)
- {
- startTime = StartDate.Value.ToString("yyyyMMddHHmm");
- }
- if (EndDate != null)
- {
- endTime = EndDate.Value.ToString("yyyyMMddHHmm");
- }
- string fileName = $"Alarm_{startTime}_{endTime}.csv";
- //打开一个保存对话框,选择保存路径
- var saveFileDialog = new Microsoft.Win32.SaveFileDialog
- {
- FileName = fileName,
- DefaultExt = ".csv",
- Filter = "CSV Files (*.csv)|*.csv"
- };
- bool? result = saveFileDialog.ShowDialog();
- if (result == true)
- {
- //保存文件
- string filePath = saveFileDialog.FileName;
- //将DataTable导出到csv文件中
- if (filePath == null) return;
- DataTableHelper.ExportToCsv(DataTable, filePath);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error);
- }
- isSearch = false;
- }
- private bool CanSearch()
- {
- if (StartDate != null && StartTime != null && EndDate != null && EndTime != null && !isSearch)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- private bool CanSave()
- {
- if (DataTable != null && DataTable.Rows.Count > 0 && !isSearch)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- #endregion
- }
- }
|