diff --git a/QshConverter/MainWindow.xaml.cs b/QshConverter/MainWindow.xaml.cs index cd8351e..31cdac5 100644 --- a/QshConverter/MainWindow.xaml.cs +++ b/QshConverter/MainWindow.xaml.cs @@ -1,5 +1,8 @@ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; @@ -32,6 +35,8 @@ private void ConvertBtnClick(object sender, RoutedEventArgs e) if (!Directory.Exists(gshStoragePath)) return; + MoveFilesToDirs(gshStoragePath); + ConvertBtn.IsEnabled = false; TbProgress.Text = "0% ..."; @@ -56,8 +61,8 @@ private SourceDataType GetSourceDataType() => Dispatcher.Invoke(() => { var sdt = SourceDataType.AuxInfo; - if ((bool) OrdLog.IsChecked) sdt = SourceDataType.OrderLog; - else if ((bool) Deals.IsChecked) sdt = SourceDataType.Deals; + if (OrdLog.IsChecked != null && (bool) OrdLog.IsChecked) sdt = SourceDataType.OrderLog; + else if (Deals.IsChecked != null && (bool) Deals.IsChecked) sdt = SourceDataType.Deals; return sdt; }); @@ -75,5 +80,41 @@ private void QsgStorageClick(object sender, RoutedEventArgs e) openFolderDialog.ShowDialog(); QshStoragePath.Text = openFolderDialog.SelectedPath; } + + private void MoveFilesToDirs(string gshStoragePath) + { + + try + { + var ordLogList = Directory.GetFiles(gshStoragePath, "*.OrdLog.qsh").ToList(); + var dealsList = Directory.GetFiles(gshStoragePath, "*.Deals.qsh").ToList(); + + FindAndMove(gshStoragePath, ordLogList); + FindAndMove(gshStoragePath, dealsList); + } + catch (Exception ex) + { + Console.WriteLine(ex); + throw; + } + + } + + private static void FindAndMove(string gshStoragePath, List ordLogList) + { + foreach (var ordFile in ordLogList) + { + var fileInfo = new FileInfo(ordFile); + var pattern = @"(\d{4}\W\d{2}\W\d{2})"; + + var folderName = Regex.Match(fileInfo.Name, pattern); + if (folderName.Length <= 0) continue; + var newFolder = new DirectoryInfo(gshStoragePath + "\\" + folderName); + if (!newFolder.Exists) + newFolder.Create(); + + fileInfo.MoveTo(newFolder.FullName + @"\" + fileInfo.Name); + } + } } }