using DataLoader.CS; using DataLoader.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Forms.VisualStyles; using System.Windows.Threading; namespace DataLoader { public partial class MainWindow : Window, INotifyPropertyChanged { private ObservableCollection viewDatas = new ObservableCollection(); public event PropertyChangedEventHandler PropertyChanged; private string _sourcePath = @"D:\LF\data\mdb"; private string _targetPath = @"\\LAPTOP-DRTGLTU2\share"; private LoginWin win; public string SourcePath { get { return _sourcePath; } set { if (!String.IsNullOrEmpty(value) && Directory.Exists(value)) { _sourcePath = value; PropertyChanged(this, new PropertyChangedEventArgs("SourcePath")); } } } public string TargetPath { get { return _targetPath; } set { if (!String.IsNullOrEmpty(value) && Directory.Exists(value)) { _targetPath = value; PropertyChanged(this, new PropertyChangedEventArgs("TargetPath")); } } } public MainWindow() { InitializeComponent(); this.DataContext = this; } protected virtual void OnPropertyChanged(string propertyName = null) { //PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } private void Window_Loaded(object sender, RoutedEventArgs e) { Tool.Owner = this; this.btnLoad.IsEnabled = false; this.btnImport.IsEnabled = false; lvView.DataContext = viewDatas; lvView.SetBinding(ListView.ItemsSourceProperty, new Binding()); //String file = "E:\\data\\mpt\\A4mpt20131125.mpt"; //string md5 = MD5Helper.GetMD5Hash(file); LogOut.Info("************ 应用程序启动成功! ************"); } // 登录 private void Login_MouseLeftButtonDown(object sender, RoutedEventArgs e) { //win = new LoginWin(); //this.Hide(); //win.Show(); SetLoginInfo(); } public void SetLoginInfo() { //if (win != null) win.Close(); //this.Show(); //this.tbUid.Text = Tool.UserId.ToString(); //this.tbToken.Text = Tool.Token; string uidStr = this.tbUid.Text.Trim(); string didStr = this.tbDir.Text.Trim(); int.TryParse(uidStr, out Tool.UserId); int.TryParse(didStr, out Tool.DirId); this.btnLoad.IsEnabled = true; this.btnImport.IsEnabled = true; } // 源目录 private void Source_MouseLeftButtonDown(object sender, RoutedEventArgs e) { System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog(); if (!String.IsNullOrEmpty(SourcePath) && Directory.Exists(SourcePath)) dialog.SelectedPath = SourcePath; System.Windows.Forms.DialogResult result = dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.Cancel) { return; } this.SourcePath = dialog.SelectedPath.Trim(); } // 目标目录 private void Target_MouseLeftButtonDown(object sender, RoutedEventArgs e) { System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog(); if (!String.IsNullOrEmpty(TargetPath) && Directory.Exists(TargetPath)) dialog.SelectedPath = TargetPath; System.Windows.Forms.DialogResult result = dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.Cancel) { return; } this.TargetPath = dialog.SelectedPath.Trim(); } // 加载 private void Load_MouseLeftButtonDown(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(SourcePath) || !Directory.Exists(SourcePath)) { MessageBox.Show("请选择数据目录!", "提示"); return; } if (string.IsNullOrEmpty(TargetPath) || !Directory.Exists(TargetPath)) { MessageBox.Show("请选择入库目录!", "提示"); return; } string[] files = Directory.GetFiles(SourcePath); if (null == files || files.Length == 0) { MessageBox.Show("数据目录下没有文件!", "提示"); return; } this.viewDatas.Clear(); Importor.GetFiles(viewDatas, SourcePath); } // 导入 private void Import_MouseLeftButtonDown(object sender, RoutedEventArgs e) { if (viewDatas.Count == 0) return; Thread thread = new Thread(new ThreadStart(() => { Importor.ImportFiles(viewDatas, TargetPath); lvView.Dispatcher.BeginInvoke((ThreadStart)delegate { ICollectionView view = CollectionViewSource.GetDefaultView(viewDatas); view.Refresh(); }); MessageBox.Show("数据导入完成!", "提示"); })); thread.Start(); } } }