/// <summary> /// 생성자 /// </summary> public FileMngViewModel() { // 초기로딩처리 LoadedCommand = new DelegateCommand <object>(OnLoaded); // 파일인포리스트 ItemsFile = new ObservableCollection <FileInfo>(); ItemsSelect = new ObservableCollection <FileDtl>(); ItemsAdd = new ObservableCollection <FileDtl>(); //파일저장버튼 이벤트 SaveFileCmd = new RelayCommand <object>(delegate(object obj) { if (ItemsFile.Count < 1) { MessageBox.Show("저장할 파일이 없습니다."); return; } upload_thread = new Thread(new ThreadStart(UploadFileListFX)); upload_thread.Start(); }); //첨부내용 저장버튼 이벤트 SaveCmd = new RelayCommand <object>(OnSave); //파일삭제버튼 이벤트 DelCmd = new DelegateCommand <object>(delegate(object obj) { string seq = ""; try { seq = obj.ToString(); } catch (Exception) { } if (FmsUtil.IsNull(seq) || "0".Equals(seq)) { Messages.ShowErrMsgBox("삭제할 대상이 없습니다."); return; } string file_name = ""; string del_file_path = ""; //0.첨부파일정보가져오기 Hashtable param = new Hashtable(); try { param.Add("FIL_SEQ", Dtl.FIL_SEQ); param.Add("SEQ", seq); param.Add("sqlId", "SelectFileDtl"); DataTable dt = BizUtil.SelectList(param); //물리파일명 가져오기 file_name = dt.Rows[0]["UPF_NAM"].ToString(); } catch (Exception ex) { Messages.ShowInfoMsgBox(ex.ToString()); InitModel(); return; } //1.첨부파일상세테이블 삭제 param["sqlId"] = "DeleteFileSeq"; BizUtil.Update(param); //2.물리적파일 삭제 del_file_path = System.IO.Path.Combine(dir_name, file_name); try { FileInfo fi = new FileInfo(del_file_path); fi.Delete(); } catch (Exception) { } //삭제성공 Messages.ShowOkMsgBox(); InitModel(); }); //기존파일 다운로드버튼 이벤트 DownloadCmd = new RelayCommand <object>(delegate(object obj) { FileDtl dtl = obj as FileDtl; string file_name = dtl.DWN_NAM; string file_name2 = dtl.UPF_NAM; try { source_file_path = System.IO.Path.Combine(dir_name, file_name2); } catch (Exception) { Messages.ShowErrMsgBox("다운로드할 수 없습니다."); return; } //파일다운로드 saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.Title = "저장경로를 지정하세요."; //초기 파일명 지정 saveFileDialog.FileName = file_name; saveFileDialog.OverwritePrompt = true; //saveFileDialog.Filter = "Excel|*.xlsx"; //saveFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; saveFileDialog.Filter = "All files (*.*)|*.*"; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { target_file_path = saveFileDialog.FileName; download_thread = new Thread(new ThreadStart(DownloadFX)); download_thread.Start(); } }); //파일찾기버튼 이벤트 FindFileCmd = new RelayCommand <object>(delegate(object obj) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = true; openFileDialog.Filter = "All files (*.*)|*.*"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (openFileDialog.ShowDialog() == true) { FileInfo[] files = openFileDialog.FileNames.Select(f => new FileInfo(f)).ToArray(); //파일인포 foreach (FileInfo fi in files) { try { //파일객체 ItemsFile.Add(fi); //파일db객체 FileDtl dtl = new FileDtl(); dtl.DWN_NAM = fi.Name; dtl.FIL_TYP = fi.Extension.Replace(".", ""); dtl.FIL_SIZ = fi.Length.ToString(); ItemsSelect.Add(dtl); } catch (Exception) {} } } }); //윈도우 마우스드래그 WindowMoveCommand = new DelegateCommand <object>(delegate(object obj) { try { if (Mouse.LeftButton == MouseButtonState.Pressed) { if (fileMngView.WindowState == WindowState.Maximized) { fileMngView.Top = Mouse.GetPosition(fileMngView).Y - System.Windows.Forms.Cursor.Position.Y - 6; fileMngView.Left = System.Windows.Forms.Cursor.Position.X - Mouse.GetPosition(fileMngView).X + 20; fileMngView.WindowState = WindowState.Normal; } fileMngView.DragMove(); } } catch (Exception ex) { Messages.ShowErrMsgBoxLog(ex); } }); }