Exemplo n.º 1
0
        /// 조회
        private void InitModel()
        {
            ItemsSelect.Clear();
            ItemsFile.Clear();

            //저장된 shp파일 목록
            DirectoryInfo di = new DirectoryInfo(BizUtil.GetDataFolder("shape"));

            //foreach (FileInfo fi in di.GetFiles().Where(f=> f.Extension.Contains("shp") || f.Extension.Contains("dbf") || f.Extension.Contains("prj") || f.Extension.Contains("shx")))
            foreach (FileInfo fi in di.GetFiles().Where(f => f.Extension.Contains("shp")))
            {
                try
                {
                    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 e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 물리적파일을 업로드한후, 파일테이블에 등록하고, _FIL_SEQ를 생성한다
        /// </summary>
        /// <returns></returns>
        private void UploadFileList()
        {
            // 1.물리적파일 저장
            if (!System.IO.Directory.Exists(dir_name))
            {
                System.IO.Directory.CreateDirectory(dir_name);
            }

            /// Items는 추가된 파일객체만이다
            foreach (FileInfo fi in ItemsFile)
            {
                //string file_name = fi.Name;
                //string file_path = System.IO.Path.Combine(dir_name, file_name);
                string file_name2 = DateTime.Now.ToString("yyyyMMddHHmmssff") + fi.Extension;   //저장되는파일이름
                string file_path2 = System.IO.Path.Combine(dir_name, file_name2);

                // 1.파일드라이브에 저장
                try
                {
                    fi.CopyTo(file_path2, true);
                }
                catch (Exception ex)
                {
                    Messages.ShowErrMsgBox(ex.Message);
                }

                // 2.저장되는 물리적파일명 db에 기록
                //파일db객체
                FileDtl dtl = new FileDtl();
                dtl.UPF_NAM = file_name2;
                dtl.DWN_NAM = fi.Name;
                dtl.FIL_TYP = fi.Extension.Replace(".", "");
                dtl.FIL_SIZ = fi.Length.ToString();
                ItemsAdd.Add(dtl);
            }


            // 2.첨부파일 등록
            int _file_seq = -1; //신규마스터

            if (this.FIL_SEQ != null)
            {
                try
                {
                    _file_seq = Convert.ToInt16(this.FIL_SEQ);
                }
                catch (Exception) { }
            }

            // 첨부파일db 저장
            ret_fil_seq = SaveFileList(_file_seq);
        }
Exemplo n.º 3
0
        public void DropRecord(List <FileInfo> filesData)
        {
            foreach (FileInfo fi in filesData)
            {
                if (!ItemsFile.Any(x => x.FullName == fi.FullName))
                {
                    //파일객체
                    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);
                }
            }
        }
Exemplo n.º 4
0
        /// 생성자
        public ShpMngViewModel()
        {
            ItemsSelect = new ObservableCollection <FileDtl>();
            ItemsFile   = new ObservableCollection <FileInfo>();



            // 초기로딩처리
            LoadedCommand = new RelayCommand <object>(delegate(object obj) {
                if (obj == null)
                {
                    return;
                }
                //그리드뷰인스턴스
                shpMngView = obj as ShpMngView;


                // 초기조회
                InitModel();
            });


            //shp파일 임포트
            ImportCmd = new RelayCommand <object>(delegate(object obj) {
                //필수체크
                if (!BizUtil.ValidReq(shpMngView))
                {
                    return;
                }

                OpenFileDialog openFileDialog   = new OpenFileDialog();
                openFileDialog.Multiselect      = true;
                openFileDialog.Filter           = "Shape files |*.shp;*.shx;*.dbf;*.prj";
                openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                if (openFileDialog.ShowDialog() == true)
                {
                    FileInfo[] files = openFileDialog.FileNames.Select(f => new FileInfo(f)).ToArray(); //파일인포

                    int cnt = 0;                                                                        //전체파일수
                    int chk = 0;                                                                        //shp,dat파일수
                    foreach (FileInfo fi in files)
                    {
                        try
                        {
                            //파일객체
                            ItemsFile.Add(fi);
                            if (fi.Extension.Contains("shp") || fi.Extension.Contains("shx") || fi.Extension.Contains("dbf") || fi.Extension.Contains("prj"))
                            {
                                chk++;
                            }
                            cnt++;
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }

                    if (chk < 4)
                    {
                        MessageBox.Show("shp, shx, dbf, prj 파일 4개를 선택해야합니다.");
                        return;
                    }
                    if (cnt > 4)
                    {
                        MessageBox.Show("한번에 한종류의 shp파일만 업로드할수 있습니다.");
                        return;
                    }



                    //파일업로드시작
                    upload_thread = new Thread(new ThreadStart(UploadFileListFX));
                    upload_thread.Start();
                }
            });



            //기존파일 다운로드버튼 이벤트
            DownloadCmd = new RelayCommand <object>(delegate(object obj)
            {
                FileDtl dtl      = obj as FileDtl;
                string file_name = dtl.DWN_NAM;

                try
                {
                    source_file_path = BizUtil.GetDataFolder("shape", file_name);
                }
                catch (Exception)
                {
                    Messages.ShowErrMsgBox("다운로드할 수 없습니다.");
                    return;
                }


                //파일다운로드
                saveFileDialog       = new System.Windows.Forms.SaveFileDialog();
                saveFileDialog.Title = "저장경로를 지정하세요.";
                //초기 파일명 지정
                saveFileDialog.FileName        = file_name;
                saveFileDialog.OverwritePrompt = true;
                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();
                }
            });
        }
Exemplo n.º 5
0
        /// <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);
                }
            });
        }