using BPASmartClient.Helper; using FryPot_DosingSystem.FryPotStatus; using Microsoft.Toolkit.Mvvm.ComponentModel; using Microsoft.Toolkit.Mvvm.Input; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; namespace FryPot_DosingSystem.ViewModel { internal class SqliteDataViewModel : ObservableObject { public ObservableCollection StatusOne { get; set; } = new ObservableCollection(); public ObservableCollection StatusTwo { get; set; } = new ObservableCollection(); public ObservableCollection StatusThree { get; set; } = new ObservableCollection(); public ObservableCollection StatusFour { get; set; } = new ObservableCollection(); public ObservableCollection StatusFive { get; set; } = new ObservableCollection(); public ObservableCollection Status { get; set; } = new ObservableCollection(); public Visibility fryOneDataVisible { get { return _fryOneDataVisible; } set { _fryOneDataVisible = value; OnPropertyChanged(); } } private Visibility _fryOneDataVisible = Visibility.Visible; public Visibility fryTwoDataVisible { get { return _fryTwoDataVisible; } set { _fryTwoDataVisible = value; OnPropertyChanged(); } } private Visibility _fryTwoDataVisible = Visibility.Collapsed; public Visibility fryThreeDataVisible { get { return _fryThreeDataVisible; } set { _fryThreeDataVisible = value; OnPropertyChanged(); } } private Visibility _fryThreeDataVisible = Visibility.Collapsed; public Visibility fryFourDataVisible { get { return _fryFourDataVisible; } set { _fryFourDataVisible = value; OnPropertyChanged(); } } private Visibility _fryFourDataVisible = Visibility.Collapsed; public Visibility fryFiveDataVisible { get { return _fryFiveDataVisible; } set { _fryFiveDataVisible = value; OnPropertyChanged(); } } private Visibility _fryFiveDataVisible = Visibility.Collapsed; public List list { get; set; } = new List() { "1号炒锅", "2号炒锅", "3号炒锅", "4号炒锅", "5号炒锅" }; public string SelectedDate { get; set; } public string cboSelectedValue { get; set; } public RelayCommand SelectCommand { get; set; } public SqliteDataViewModel() { SelectCommand = new RelayCommand(() => { #region 旧版本 //if (SelectedDate != string.Empty && SelectedDate != "" && SelectedDate != null && cboSelectedValue != null && cboSelectedValue != string.Empty && cboSelectedValue != "") //{ // if (cboSelectedValue == "1号炒锅") // { // List listOne = Sqlite.GetInstance.Base.ToList(); // var list = listOne.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); // if (list != null && list.Count() != 0) // { // if (StatusOne.Count > 0) // { // StatusOne.Clear(); // } // foreach (var item in list) // { // StatusOne.Add(item); // } // fryOneDataVisible = Visibility.Visible; // fryTwoDataVisible = Visibility.Collapsed; // fryThreeDataVisible = Visibility.Collapsed; // fryFourDataVisible = Visibility.Collapsed; // fryFiveDataVisible = Visibility.Collapsed; // } // else // { // MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); // } // } // if (cboSelectedValue == "2号炒锅") // { // List listTwo = Sqlite.GetInstance.Base.ToList(); // var list = listTwo.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); // if (list != null && list.Count() != 0) // { // if (StatusTwo.Count > 0) // { // StatusTwo.Clear(); // } // foreach (var item in list) // { // StatusTwo.Add(item); // } // fryOneDataVisible = Visibility.Collapsed; // fryTwoDataVisible = Visibility.Visible; // fryThreeDataVisible = Visibility.Collapsed; // fryFourDataVisible = Visibility.Collapsed; // fryFiveDataVisible = Visibility.Collapsed; // } // else // { // MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); // } // } // if (cboSelectedValue == "3号炒锅") // { // List listThree = Sqlite.GetInstance.Base.ToList(); // var list = listThree.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); // if (list != null && list.Count() != 0) // { // if (StatusThree.Count > 0) // { // StatusThree.Clear(); // } // foreach (var item in list) // { // StatusThree.Add(item); // } // fryOneDataVisible = Visibility.Collapsed; // fryTwoDataVisible = Visibility.Collapsed; // fryThreeDataVisible = Visibility.Visible; // fryFourDataVisible = Visibility.Collapsed; // fryFiveDataVisible = Visibility.Collapsed; // } // else // { // MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); // } // } // if (cboSelectedValue == "4号炒锅") // { // List listFour = Sqlite.GetInstance.Base.ToList(); // var list = listFour.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); // if (list != null && list.Count() != 0) // { // if (StatusFour.Count > 0) // { // StatusFour.Clear(); // } // foreach (var item in list) // { // StatusFour.Add(item); // } // fryOneDataVisible = Visibility.Collapsed; // fryTwoDataVisible = Visibility.Collapsed; // fryThreeDataVisible = Visibility.Collapsed; // fryFourDataVisible = Visibility.Visible; // fryFiveDataVisible = Visibility.Collapsed; // } // else // { // MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); // } // } // if (cboSelectedValue == "5号炒锅") // { // List listFive = Sqlite.GetInstance.Base.ToList(); // var list = listFive.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); // if (list != null && list.Count() != 0) // { // if (StatusFive.Count > 0) // { // StatusFive.Clear(); // } // foreach (var item in list) // { // StatusFive.Add(item); // } // fryOneDataVisible = Visibility.Collapsed; // fryTwoDataVisible = Visibility.Collapsed; // fryThreeDataVisible = Visibility.Collapsed; // fryFourDataVisible = Visibility.Collapsed; // fryFiveDataVisible = Visibility.Visible; // } // else // { // MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); // } // } //} #endregion using (OpenFileDialog openFile = new OpenFileDialog()) { openFile.Title = "请选择对应数据文件"; openFile.Filter = "*.BIN|*.bin"; openFile.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory + "AccessFile\\" + "DB\\"; openFile.Multiselect = false; DialogResult res = openFile.ShowDialog(); if (res == DialogResult.OK) { string file = openFile.FileName; if (Path.GetExtension(file).Equals(".bin")) { if (Status.Count > 0) { Status.Clear(); } using (FileStream readStream = new FileStream(file, FileMode.Open, FileAccess.Read)) { readStream.Position = 0; while (readStream.Position < readStream.Length) { BinaryFormatter bf = new BinaryFormatter(); object a = bf.Deserialize(readStream); if (a is PotOneStatus p1) { Status.Add(p1); } if (a is PotTwoStatus p2) { Status.Add(p2); } if (a is PotThreeStatus p3) { Status.Add(p3); } if (a is PotFourStatus p4) { Status.Add(p4); } if (a is PotFiveStatus p5) { Status.Add(p5); } } } } } } }); } } }