Пример #1
0
        // プロセスの終了を捕捉する Exited イベントハンドラ
        private void Process_Exited(object sender, EventArgs e)
        {
            var proc = (System.Diagnostics.Process)sender;

            var process = DisplayFileInfoList.Where(x => x?.Process?.Id == proc?.Id);

            if (process.Any())
            {
                foreach (var item in process)
                {
                    item.Process    = null;
                    item.Processing = false;
                }
            }
            process = FileInfoList.Where(x => x?.Process?.Id == proc?.Id);
            if (!process.Any())
            {
                return;
            }
            foreach (var item in process)
            {
                item.Process    = null;
                item.Processing = false;
            }
        }
Пример #2
0
 public void SynchronizeDisplayFileList()
 {
     DisplayFileInfoList.Clear();
     foreach (var item in FileInfoList)
     {
         DisplayFileInfoList.Add(item);
     }
 }
Пример #3
0
 protected bool CanProcessStart()
 {
     if (SelectedFileInfo == null)
     {
         return(false);
     }
     return(DisplayFileInfoList.Any() && SelectedFileInfo.Process == null);
 }
Пример #4
0
        protected void RemoveItem()
        {
            var index = DisplayFileInfoList.IndexOf(SelectedFileInfo);

            FileInfoList.Remove(SelectedFileInfo);
            DisplayFileInfoList.Remove(SelectedFileInfo);

            //選択アイテムの更新
            if (DisplayFileInfoList.Count == 0)
            {
                //表示対象がない
                index = -1;
            }
            else if (DisplayFileInfoList.Count <= index)
            {
                index = DisplayFileInfoList.Count - 1;
            }
            else
            {
                //何もしない
            }

            if (index >= 0)
            {
                DisplayFileInfoList.ElementAt(index).IsSelected = true;
            }

            //フィルタの更新
            var missingKeywordList = new List <Extension>();

            foreach (var item in ExtensionList)
            {
                missingKeywordList.Add(item);
            }
            missingKeywordList.RemoveAt(0);
            foreach (var item in DisplayFileInfoList)
            {
                var extension      = Path.GetExtension(item.FilePath);
                var extensionItems = ExtensionList.Where(x => x.Name == extension);

                if (extensionItems.Any())
                {
                    foreach (var extItem in extensionItems)
                    {
                        missingKeywordList.Remove(extItem);
                    }
                }
            }

            foreach (var item in missingKeywordList)
            {
                ExtensionList.Remove(item);
            }

            HasItem = FileInfoList.Any();
        }
Пример #5
0
        /// <summary>
        /// フィルタする
        /// </summary>
        private void FilterInternal()
        {
            var filteredList = FileInfoList.Select(x => x);

            if (m_FilterExtension == "(指定なし)")
            {
                filteredList = filteredList.Where(x => x.FilePath.Contains(m_FilterKeyword));
            }
            else
            {
                filteredList = filteredList.Where(x => Path.GetExtension(x.FilePath) == m_FilterExtension && x.FilePath.Contains(m_FilterKeyword));
            }
            DisplayFileInfoList.Clear();
            foreach (var item in filteredList)
            {
                DisplayFileInfoList.Add(item);
            }
            IsFiltering = true;
        }