예제 #1
0
        private void RefreshFiles()
        {
            Reset(resetContent: true, resetGrid: true, resetLanguage: true, resetFile: true);

            FilesFound = _fileService.GetJsonFiles().ToArray();
            if (!FilesFound.Any())
            {
                return;
            }

            var currentFileSource = new List <string>
            {
                string.Empty
            };

            currentFileSource.AddRange(FilesFound.Select(s => s.DisplayName).Distinct().OrderBy(o => o));

            if (currentFile.InvokeRequired)
            {
                currentFile.Invoke((MethodInvoker) delegate
                {
                    currentFile.DataSource = currentFileSource;
                });
            }
            else
            {
                currentFile.DataSource = currentFileSource;
            }
        }
예제 #2
0
        private void CurrentFile_SelectedIndexChanged(object sender, EventArgs e)
        {
            Reset(resetContent: true, resetGrid: true, resetLanguage: true);

            if (string.IsNullOrEmpty(currentFile.Text))
            {
                return;
            }

            var grouped = FilesFound
                          .Where(w => w.DisplayName == currentFile.Text)
                          .ToList();

            var currentLanguageSource = new List <string>();

            currentLanguageSource.AddRange(grouped.Select(s => s.Language).Distinct().OrderBy(o => o));
            currentLanguage.DataSource = currentLanguageSource;
            currentLanguage.Text       = currentLanguageSource.FirstOrDefault();
        }
예제 #3
0
        private void FileWatcherCreated(object sender, FileSystemEventArgs e)
        {
            DateTime outDt;
            var      name = e.Name;

            if (FilesFound.TryGetValue(name, out outDt))
            {
                // We have already processed
                return;
            }
            if (e.Name.Equals("PlexRequests.zip"))
            {
                FilesFound.TryAdd(name, DateTime.UtcNow);
                ConsoleHelper.WriteLine("Found PlexRequests.zip");
                Thread.Sleep(TimeSpan.FromMinutes(1));
                ConsoleHelper.WriteLine("Waiting for file to download");
                var d = new Deploy();
                d.DeployApp(e.FullPath);
            }
        }
예제 #4
0
        private void SetFileSet()
        {
            string currentFileText     = "";
            string currentLanguageText = "";

            // Set current file set
            if (InvokeRequired)
            {
                Invoke((MethodInvoker) delegate
                {
                    currentFileText     = currentFile.Text;
                    currentLanguageText = currentLanguage.Text;
                });
            }
            else
            {
                currentFileText     = currentFile.Text;
                currentLanguageText = currentLanguage.Text;
            }

            FileSet = FilesFound.FirstOrDefault(f => f.DisplayName == currentFileText && f.Language == currentLanguageText);
        }
예제 #5
0
        public void WalkDirectoryTree(DirectoryInfo root, string searchMask)
        {
            DirectoryInfo[] childDirectories = null;
            FileInfo[]      files            = null;
            try
            {
                files = root.GetFiles(searchMask);
                if (files.Length > 0)
                {
                    FilesFound?.Invoke(this, new FilesEventArgs(files));
                }
            }
            catch (UnauthorizedAccessException) { }

            try
            {
                childDirectories = root.GetDirectories();
                foreach (System.IO.DirectoryInfo directoryInfo in childDirectories)
                {
                    WalkDirectoryTree(directoryInfo, searchMask);
                }
            }
            catch (UnauthorizedAccessException) { }
        }