Exemplo n.º 1
0
        public async void SearchForFiles(string drawingNumber)
        {
            await Task.Factory.StartNew(() =>
            {
                var searchValue = drawingNumber.ToLower();

                var dirStack = new Stack <string>();
                dirStack.Push(Settings.Default.DrawingFileLocation);

                while (dirStack.Count > 0)
                {
                    var currentDir = dirStack.Pop();

                    var directories = Directory.GetDirectories(currentDir);

                    Array.ForEach(directories, d => dirStack.Push(d));

                    foreach (var file in Directory.GetFiles(currentDir).Where(f => f.ToLower().Contains(searchValue)))
                    {
                        var fi = new FileInfo(file);

                        var model = new FindDrawingViewModel
                        {
                            ShortFileName = fi.Name,
                            FileName      = file,
                            CreatedAt     = fi.CreationTime
                        };

                        _view.AddResult(model);
                    }
                }

                _view.SearchComplete();
            });
        }
        public void AddResult(FindDrawingViewModel model)
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                model.Icon = GetFileIcon(model.FileName);

                _searchResults.Add(model);

                ResultsHeader.Text = $"{_searchResults.Count} results found.";            
            });
        }