예제 #1
0
        public JsonResult _FileList(int folderId, int?fileTypeId, string fileNameFilter, int pageSize, int pageNumber, int fileShortNameLength = 15)
        {
            var serviceResult = ContentService.GetFileList(
                new ListCommand
            {
                PageSize  = pageSize,
                StartPage = pageNumber + 1
            },
                folderId,
                new LibraryFileFilter
            {
                FileType       = (FolderFileType?)fileTypeId,
                FileNameFilter = fileNameFilter
            }
                );

            return(new JsonResult
            {
                Data = new
                {
                    success = true,
                    data = new ListResult <FileListItem>
                    {
                        Data = serviceResult.Data.Select(f => FileListItem.Create(f, fileShortNameLength)).ToList(),
                        TotalRecords = serviceResult.TotalRecords
                    }
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        private void DownloadDicom(FileListItem selectedFile, DataListItem dataListItem, string selectedDicomPackageLocalPath, 云数据类型Enum 云数据类型Enum)
        {
            DownloadFileWorker.Download(
                selectedFile,
                selectedDicomPackageLocalPath,
                delegate(string filename)
            {
                UIUtil.Invoke(this, delegate
                {
                    try
                    {
                        //string tempPath = selectedDicomPackageLocalPath.Substring(0, selectedDicomPackageLocalPath.LastIndexOf(Path.DirectorySeparatorChar));
                        //System.Diagnostics.Process.Start(tempPath);
                        //ResumeGUI();
                        while (!File.Exists(selectedDicomPackageLocalPath))
                        {
                        }

                        string destFileRAR = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(selectedDicomPackageLocalPath), System.IO.Path.GetFileNameWithoutExtension(selectedDicomPackageLocalPath) + ".zip");
                        File.Copy(selectedDicomPackageLocalPath, destFileRAR);
                        File.Delete(selectedDicomPackageLocalPath);
                        selectedDicomPackageLocalPath = destFileRAR;
                        //System.Diagnostics.Process.Start(System.IO.Path.GetDirectoryName(selectedDicomPackageLocalPath));
                        string destFolder = AirwayPatients.BaseDicomFolder + "\\" + dataListItem.PatientName + "_" + dataListItem.StudyInstanceUID;
                        //解压缩并用dicomviewer打开
                        FileDAO.upZip(selectedDicomPackageLocalPath, destFolder);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                });
            },
                delegate(string errMsg)
            {
                UIUtil.Invoke(this, delegate
                {
                    MessageBox.Show("下载发生异常!", "提示");
                });
            },
                delegate(Exception ex)
            {
                UIUtil.Invoke(this, delegate
                {
                    Util.ShowExceptionMessage(ex);
                });
            },
                delegate(ProgressArgs progressArgs)
            {
                UIUtil.Invoke(this, delegate
                {
                    Console.WriteLine(progressArgs.Percentage.Value);
                    Progress.Value   = progressArgs.Percentage.Value;
                    tbPercent.Text   = ((progressArgs.Percentage.Value * 100).ToString("F2")).ToString() + " %";
                    txtFileSize.Text = FileDAO.HumanReadableFilesize(progressArgs.Total - progressArgs.Remains) + " / " + FileDAO.HumanReadableFilesize(_selectedFile.FileSize);
                    tbSpeed.Text     = progressArgs.Speed.HasValue ? FileDAO.HumanReadableFilesize((long)progressArgs.Speed.Value) + "/s" : "";
                    Console.WriteLine(progressArgs);
                });
            }, 云数据类型Enum);
        }
        private void btnDownloadAdminFile_Click(object sender, RoutedEventArgs e)
        {
            if (listboxAdminFiles.SelectedIndex < 0)
            {
                MessageBox.Show("请先选中文件进行下载");
                return;
            }
            FileListItem selectedFile = _adminFileList[listboxAdminFiles.SelectedIndex];

            MESPDownloadUpload.OrderId = MESPDownloadUpload.OrderNo = _selectedOrder.DataID;

            string filename = Path.Combine(Path.Combine(_UserID, _OrderNO),
                                           _selectedOrder.PatientName + "-" + _selectedOrder.PatientAge + "-" + _selectedOrder.PatientSex + "-" + _selectedOrder.InstitutionName + "-" + _selectedOrder.AcquisitionDate + "-" + selectedFile.FileName);


            string selectedDicomPackageLocalPath = "";

            try
            {
                selectedDicomPackageLocalPath =
                    new FileInfo(filename).FullName;
            }
            catch (Exception)
            {
                filename = Path.Combine(Path.Combine(_UserID, _OrderNO), selectedFile.FileName);
                selectedDicomPackageLocalPath =
                    new FileInfo(filename).FullName;
            }

            PauseGUI();
            ThreadPool.QueueUserWorkItem(delegate {
                Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum.处理结果);
            });
        }
예제 #4
0
        public void TestSerializeRecord()
        {
            var file = new FileListItem("my/path", new DateTimeOffset(2020, 05, 04, 10, 2, 0, 0, TimeSpan.Zero), 500);

            file.ToJson(JsonExtensions.DefaultSettings(Formatting.None)).Should().Be("{\"path\":\"my/path\",\"modified\":\"2020-05-04T10:02:00+00:00\",\"bytes\":500}");
            file.ToJson().ToObject <FileListItem>().Should().BeEquivalentTo(file);
        }
        public static void Download(
            FileListItem fli,
            string localDstFullName,
            Action <string> successCallback,
            Action <string> failureCallback,
            Action <Exception> errorCallback,
            Action <ProgressArgs> uploadProgressCallback, 云数据类型Enum 云数据类型Enum)
        {
            Console.WriteLine("Downloading to " + localDstFullName);

            new MESPDownloadUpload().DownloadFileAsync(
                云数据类型Enum,
                fli.FileName,
                (int)fli.FileSize,
                localDstFullName,
                new EventHandler <ExceptionArgs>(delegate(Object senderInner, ExceptionArgs eInner)
            {
                errorCallback(eInner.Exception);
            }),
                new EventHandler <FileDownloadFinishedArgs>(delegate(Object senderInnerDownload, FileDownloadFinishedArgs eInnerDownload)
            {
                successCallback(fli.FileName);
            }),
                new EventHandler <ProgressArgs>(delegate(Object senderInnerDownload, ProgressArgs eInnerDownload)
            {
                uploadProgressCallback(eInnerDownload);
            })
                );
        }
예제 #6
0
        static List <FileListItem> GatherFilesInFolder(string dir, bool isFirst)
        {
            var list           = new List <FileListItem>();
            var dirShortName   = dir.Trim('\\').Split('\\').Last();
            var folderExcluded = false;

            if (!isFirst)
            {
                var folderItem = new FileListItem {
                    Dir = dir, Selected = !folderExcluded
                };
                list.Add(folderItem);
            }

            var files = Directory.GetFiles(dir);

            foreach (string file in files)
            {
                string shortName = dir.Substring(_rootLength);
                var    selected  = true;
                list.Add(new FileListItem
                {
                    Dir      = file,
                    IsFile   = true,
                    Selected = selected
                });
            }

            string[] folders = Directory.GetDirectories(dir);
            foreach (string folder in folders)
            {
                list.AddRange(GatherFilesInFolder(folder, false).ToArray());
            }
            return(list);
        }
예제 #7
0
        private void ListItem_RemoveFile(object sender, EventArgs e)
        {
            FileListItem fileItem = (FileListItem)sender;

            Attachments.Remove(fileItem.File);
            FileList.Children.Remove(fileItem);
        }
예제 #8
0
        private void MessagesGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {
            DisplayedMessage message = (DisplayedMessage)MessagesGrid.SelectedItem;

            if (message != null)
            {
                Label fromLabel    = (Label)LogicalTreeHelper.FindLogicalNode(this, "fromLabel");
                Label subjectLabel = (Label)LogicalTreeHelper.FindLogicalNode(this, "subjectLabel");
                Label toLabel      = (Label)LogicalTreeHelper.FindLogicalNode(this, "toLabel");

                AttachmentList.Children.Clear();

                foreach (Attachment attachment in message.Message.Attachments)
                {
                    FileListItem listItem = new FileListItem(new FileModel(attachment, DateTime.Today));
                    AttachmentList.Children.Add(listItem);
                }

                MessageContainer.Visibility = Visibility.Collapsed;

                fromLabel.Content    = message.Message.From;
                subjectLabel.Content = message.Subject;
                toLabel.Content      = message.Message.To[0];

                if (_messageWorker.IsBusy)
                {
                    _queuedMessage = message;
                }
                else
                {
                    _messageWorker.RunWorkerAsync(message);
                }
            }
        }
예제 #9
0
 private void Download(FileListItem selectedFile, string selectedDicomPackageLocalPath, 云数据类型Enum 云数据类型Enum)
 {
     DownloadFileWorker.Download(
         selectedFile,
         selectedDicomPackageLocalPath,
         delegate(string filename)
     {
         UIUtil.Invoke(this, delegate
         {
             System.Diagnostics.Process.Start(selectedDicomPackageLocalPath);
         });
     },
         delegate(string errMsg)
     {
         UIUtil.Invoke(this, delegate
         {
             MessageBox.Show(errMsg);
         });
     },
         delegate(Exception ex)
     {
         UIUtil.Invoke(this, delegate
         {
             //Util.ShowExceptionMessage(ex);
             Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum.处理结果);
         });
     },
         delegate(ProgressArgs progressArgs)
     {
         UIUtil.Invoke(this, delegate
         {
             Console.WriteLine(progressArgs);
         });
     }, 云数据类型Enum);
 }
예제 #10
0
        internal void LoadFileList(string filePath)
        {
            ListFiles = new List <FileListItem>();
            using (var xm = new XmlManager())
            {
                xm.InitializeFromFile(filePath);
                XmlNodeList filesNodes = xm.GetNodes("Files/File");

                foreach (XmlNode fileNode in filesNodes)
                {
                    var fileItem = new FileListItem
                    {
                        Path = fileNode.InnerText,
                        Size = fileNode.ParseIntAttribute("Size")
                    };
                    if (fileNode.HasAttribute("Verify"))
                    {
                        fileItem.VerifyMD5 = true;
                        fileItem.MD5       = fileNode.ParseStringAttribute("MD5");
                    }

                    ListFiles.Add(fileItem);
                }
            }

#if DEBUG
            Debug.Print("{0} Files Loaded from FileList.xml!", ListFiles.Count);
#endif
        }
예제 #11
0
        private void MessageList_RenameFile(object sender, System.EventArgs e)
        {
            FileListItem item = (FileListItem)sender;

            _parent.Darkened = true;

            Rename renameWindow = new Rename();

            renameWindow.CancelButtonClicked += (o, args) =>
            {
                _parent.mainCanvas.Children.Remove(renameWindow);
                _parent.Darkened = false;
            };

            renameWindow.ReadyButtonClicked += (s, ev) =>
            {
                try
                {
                    renameWindow.LoadingOn = true;

                    _parent.Client.RenameFile(item.File.Id, item.File.Name,
                                              renameWindow.NewName + item.File.Name.Substring(item.File.Name.LastIndexOf('.')));

                    renameWindow.LoadingOn = false;

                    _parent.mainCanvas.Children.Remove(renameWindow);
                    _parent.Darkened = false;
                }
                catch (Exception ex)
                {
                }
            };

            _parent.mainCanvas.Children.Add(renameWindow);
        }
예제 #12
0
        private void GetFile(DataListItem dataItem)
        {
            MESPDownloadUpload.UserId  = dataItem.UserId;
            MESPDownloadUpload.OrderId = MESPDownloadUpload.OrderNo = dataItem.DataID;
            try
            {
                ThreadPool.QueueUserWorkItem(delegate
                {
                    new MESPDownloadUpload().FetchFileListAsync(
                        _云数据类型Enum,
                        new EventHandler <ExceptionArgs>(
                            delegate(Object senderInner, ExceptionArgs eInner)
                    {
                        ///MessageBox.Show("未找到文件!");
                    }),
                        new EventHandler <FileListFinishedArgs>(delegate(Object senderInner, FileListFinishedArgs eInner)
                    {
                        Dispatcher.BeginInvoke(new Action(delegate()
                        {
                            _selectedFile    = eInner.Result[0];
                            txtFileName.Text = _dataItem.PatientName;
                            txtFileType.Text = _云数据类型Enum == 云数据类型Enum.Dicom数据压缩包 ? "DICOM" : "处理数据";
                            txtFileSize.Text = "0.00 / " + FileDAO.HumanReadableFilesize(_selectedFile.FileSize);
                            //Progress.Maximum = selectedFile.FileSize;
                            Progress.Maximum = 1;

                            string filename = System.IO.Path.Combine(AirwayPatients.BaseDicomFolder, _selectedFile.FileName);

                            filename = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(filename), System.IO.Path.GetFileNameWithoutExtension(filename) + ".temp");
                            string selectedDicomPackageLocalPath = "";
                            try
                            {
                                selectedDicomPackageLocalPath =
                                    new FileInfo(filename).FullName;
                            }
                            catch (Exception)
                            {
                                //filename = @"C:\AirwayVE\CT\" + items.PatientName + ".zip";
                                //filename =  Path.Combine(AirwayPatients.BaseDicomFolder, items.PatientName + ".zip");
                                selectedDicomPackageLocalPath = new FileInfo(filename).FullName;
                            }


                            ThreadPool.QueueUserWorkItem(delegate
                            {
                                DownloadDicom(_selectedFile, dataItem, selectedDicomPackageLocalPath, 云数据类型Enum.Dicom数据压缩包);
                            });
                        }
                                                          ));
                    }));
                }
                                             );
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        /// <summary>
        /// Ajoute une musique dans la liste des fichiers sélectionnés
        /// </summary>
        /// <param name="fileName"></param>
        public void AddMusicPathOrFolderToFLP(string songName, string songAuthor, FlowLayoutPanel flp)
        {
            var file = new FileListItem(songAuthor + " - " + songName, string.Empty, flp);

            file.RequestDeleteItem += Item_RequestDeleteItem;
            file.Name = songAuthor + " " + songName;

            flp.Controls.Add(file);
        }
예제 #14
0
    public void TestSerializeRecord()
    {
        var file = new FileListItem("my/path", new DateTimeOffset(year: 2020, month: 05, day: 04, hour: 10, minute: 2, second: 0, millisecond: 0, TimeSpan.Zero),
                                    Bytes: 500);

        file.ToJson(JsonExtensions.DefaultSettings(Formatting.None)).Should()
        .Be("{\"path\":\"my/path\",\"modified\":\"2020-05-04T10:02:00+00:00\",\"bytes\":500}");
        file.ToJson().ToObject <FileListItem>().Should().BeEquivalentTo(file);
    }
예제 #15
0
        public ConversationMessageDetails(ConversationMessageModel message)
        {
            this.Dispatcher.Invoke(() =>
            {
                InitializeComponent();

                DetailsTable.AddItem("Data: ", message.InitialDate.Value.ToString("dd.MM.yyyy HH:mm"));

                if (message.Attachments.Count == 0)
                {
                    AttachmentListContainer.Visibility = Visibility.Collapsed;
                }
                else
                {
                    foreach (FileModel attachment in message.Attachments)
                    {
                        FileListItem listItem  = new FileListItem(attachment);
                        listItem.AllowDelete   = false;
                        listItem.AllowDownload = false;
                        listItem.AllowRename   = false;
                        listItem.AllowSelect   = false;
                        AttachmentList.Children.Add(listItem);
                    }
                }

                if (message is ConversationEmailMessageModel)
                {
                    ConversationEmailMessageModel emailMessage = (ConversationEmailMessageModel)message;
                    EmailAddressModel email = message.Author.EmailAddresses.Find(obj => obj.Id == message.AuthorFrom);
                    DetailsTable.AddItem("Od: ", message.Author.FullName + " <" + email.Address + ">");
                    SubjectLabel.Text     = emailMessage.MessageSubject;
                    MessageContainer.Text = emailMessage.MessageContent;
                }
                else if (message is ConversationPhoneMessageModel)
                {
                    ConversationPhoneMessageModel phoneMessage = (ConversationPhoneMessageModel)message;

                    DetailsTable.AddItem("Od: ", message.Author.FullName + " (" + phoneMessage.AuthorPhoneNumber.Number + ")");
                    DetailsTable.AddItem("Do: ", phoneMessage.Recipient.FullName + " (" + phoneMessage.RecipientPhoneNumber.Number + ")");

                    SubjectLabelContainer.Visibility = Visibility.Collapsed;

                    if (!phoneMessage.CallAnswered)
                    {
                        CallUnansweredContainer.Visibility = Visibility.Visible;
                    }

                    MessageContainer.Margin = new Thickness(MessageContainer.Margin.Left, 10, MessageContainer.Margin.Right, MessageContainer.Margin.Bottom);
                    MessageContainer.Text   = phoneMessage.CallDescription;
                }

                CloseButton.PreviewMouseLeftButtonDown += CloseButton_PreviewMouseLeftButtonDown;
                CloseButton.MouseEnter += CloseButton_MouseEnter;
                CloseButton.MouseLeave += CloseButton_MouseLeave;
            });
        }
예제 #16
0
        private void OnMouseDoubleClickCommandExecuted(object obj)
        {
            var sender = (obj as MouseButtonEventArgs).OriginalSource;

            if (sender is RadListBoxItem)
            {
                FileListItem item = (sender as RadListBox).DataContext as FileListItem;
                (obj as MouseButtonEventArgs).Handled = true;
            }
        }
예제 #17
0
        private void AddCell(FileListItem item)
        {
            var obj  = Instantiate(CellPrefab, scrollContent.transform);
            var cell = obj.GetComponent <FileListCell>();

            cell.Title       = item.title;
            cell.isChecked   = item.isChecked;
            cell.onClick     = item.onClick;
            cell.onLongClick = item.onLongClick;
        }
        /// <summary>
        /// Ajoute une ligne dans la liste des fichiers sélectionnés
        /// </summary>
        /// <param name="fileName"></param>
        public void AddFilePathOrFolderToFLP(string fileName, string fullPath, FlowLayoutPanel flp)
        {
            if (!FileOrFolderAlreadySelected(fullPath, flp))
            {
                var file = new FileListItem(fileName, fullPath, flp);
                file.RequestDeleteItem += Item_RequestDeleteItem;
                file.Name = fileName;

                flp.Controls.Add(file);
            }
        }
예제 #19
0
        private void MessageList_OpenFile(object sender, EventArgs e)
        {
            FileListItem fileItem = (FileListItem)sender;

            if (fileItem.File.Data == null)
            {
                EventHandler <FileDownloadedEventArgs> eventDelegate = null;

                eventDelegate = (s, args) =>
                {
                    if (fileItem.File.Downloaded)
                    {
                        if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool"))
                        {
                            Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool");
                        }

                        if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name))
                        {
                            DownloadHelper.DownloadFile(fileItem.File, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool");

                            while (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name))
                            {
                            }
                        }

                        Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name);

                        _parent.DownloadClient.FileDownloaded -= eventDelegate;
                    }
                };
                _parent.DownloadClient.FileDownloaded += eventDelegate;
                _parent.DownloadClient.DownloadQueue.Add(fileItem.File);
            }
            else
            {
                if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool"))
                {
                    Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool");
                }

                if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name))
                {
                    DownloadHelper.DownloadFile(fileItem.File, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool");

                    while (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name))
                    {
                    }
                }

                Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/CRMTool/" + fileItem.File.Name);
            }
        }
예제 #20
0
        private void DownloadResultFile(FileListItem selectedFileItem, string selectedDicomPackageLocalPath, 云数据类型Enum 云数据类型Enum)
        {
            DownloadFileWorker.Download(
                selectedFileItem,
                selectedDicomPackageLocalPath,
                delegate(string filename)
            {
                UIUtil.Invoke(this, delegate
                {
                    try
                    {
                        lbWaiting.Visibility = Visibility.Hidden;
                        ResumeGUI();
                        while (!File.Exists(selectedDicomPackageLocalPath))
                        {
                        }
                        //Thread.Sleep(1000);
                        openPatientsMsgWindow(selectedDicomPackageLocalPath);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                });
            },
                delegate(string errMsg)
            {
                UIUtil.Invoke(this, delegate
                {
                    MessageBox.Show(errMsg);
                    ResumeGUI();
                });
            },
                delegate(Exception ex)
            {
                UIUtil.Invoke(this, delegate
                {
                    Util.ShowExceptionMessage(ex);
                    //Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum.处理结果);
                    ResumeGUI();
                });
            },
                delegate(ProgressArgs progressArgs)
            {
                UIUtil.Invoke(this, delegate
                {
                    lbWaiting.Content          = "正在下载,请稍候。" + progressArgs.ToString();
                    lbDownloadProgress.Content = progressArgs.ToString();

                    Console.WriteLine(progressArgs);
                });
            }, 云数据类型Enum);
        }
예제 #21
0
        private void AddTarget()
        {
            var selectedSource = sources.SelectedItem as FileListItem;

            if (selectedSource == null)
            {
                MessageBox.Show("Please select a source file first.");
                return;
            }
            else
            {
                var newSourceFile = newTarget.Text.Trim();
                if (string.IsNullOrWhiteSpace(newSourceFile))
                {
                    BrowseTarget();
                    return;
                }
                var newInternalFilename = newSourceFile.ToLowerInvariant();
                if (newInternalFilename == selectedSource.InternalFileName)
                {
                    MessageBox.Show("Target file cannot be identical to source file");
                    return;
                }

                if (_targetList.Any(f => f.SourceFile == selectedSource.InternalFileName &&
                                    f.InternalFileName == newInternalFilename))
                {
                    MessageBox.Show(string.Format("Target {0} already exists for source {1}.",
                                                  newSourceFile, selectedSource.FileName));
                    return;
                }
                else
                {
                    var newFileItem = new FileListItem
                    {
                        InternalFileName = newInternalFilename,
                        FileName         = newSourceFile,
                        SourceFile       = selectedSource.InternalFileName,
                        Checked          = true
                    };
                    _targetList.Add(newFileItem);

                    var index = targets.Items.Add(newFileItem);
                    targets.SetSelected(index, true);
                    newTarget.Clear();
                    newTarget.Focus();
                }
            }
        }
예제 #22
0
 private void DownloadAirwayResultFileWithoutOpen(FileListItem selectedFileItem, string selectedAirwayPackageLocalPath, 云数据类型Enum 云数据类型Enum)
 {
     DownloadFileWorker.Download(
         selectedFileItem,
         selectedAirwayPackageLocalPath,
         delegate(string filename)
     {
         UIUtil.Invoke(this, delegate
         {
             try
             {
                 while (!File.Exists(selectedAirwayPackageLocalPath))
                 {
                 }
                 //Thread.Sleep(1000);
                 Process.Start(System.IO.Path.GetDirectoryName(selectedAirwayPackageLocalPath));
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.ToString());
             }
         });
     },
         delegate(string errMsg)
     {
         UIUtil.Invoke(this, delegate
         {
             MessageBox.Show(errMsg);
         });
     },
         delegate(Exception ex)
     {
         UIUtil.Invoke(this, delegate
         {
             Util.ShowExceptionMessage(ex);
             //Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum.处理结果);
         });
     },
         delegate(ProgressArgs progressArgs)
     {
         UIUtil.Invoke(this, delegate
         {
             Console.WriteLine(progressArgs.Percentage.Value);
             Progress.Value = progressArgs.Percentage.Value;
             tbPercent.Text = ((progressArgs.Percentage.Value * 100).ToString("F2")).ToString() + " %";
             Console.WriteLine(progressArgs);
         });
     }, 云数据类型Enum);
 }
예제 #23
0
        public static List <FileListItem> GetFileListItem(List <DataListItem> dataListItems)
        {
            List <FileListItem> list = new List <FileListItem>();

            foreach (var item in dataListItems)
            {
                FileListItem file = GetFileListItem(item);
                if (file != null)
                {
                    list.Add(file);
                }
            }

            return(list);
        }
예제 #24
0
        public static FileListItem GetDicomFileItemByDataID(string dataID, string userID)
        {
            MESPDownloadUpload.UserId  = userID;
            MESPDownloadUpload.OrderId = MESPDownloadUpload.OrderNo = dataID;
            FileListItem selectedFile = new FileListItem();

            selectedFile.FileName = "test";
            try
            {
                Thread thread = new Thread(new ThreadStart(delegate
                {
                    new MESPDownloadUpload().FetchFileListAsync(
                        云数据类型Enum.处理结果,
                        new EventHandler <ExceptionArgs>(
                            delegate(Object senderInner, ExceptionArgs eInner)
                    {
                        MessageBox.Show("未找到文件!");
                    }),
                        new EventHandler <FileListFinishedArgs>(delegate(Object senderInner, FileListFinishedArgs eInner)
                    {
                        Console.WriteLine("FileListFinishedArgs");
                        if (eInner.Result != null && eInner.Result.Count > 0)
                        {
                            selectedFile = eInner.Result[0];
                        }
                        else
                        {
                            selectedFile.FileName = "null";
                        }
                    }));
                }));
                thread.Start();
                thread.Join();
                //ThreadPool.QueueUserWorkItem(delegate
                //{

                //});
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            while (selectedFile != null && selectedFile.FileName == "test")
            {
            }
            Console.WriteLine("selectedFile");
            return(selectedFile);
        }
예제 #25
0
        private void DownloadFile(DataGrid gridFileList, 云数据类型Enum 云数据类型Enum)
        {
            DataListItem[] orderList     = (DataListItem[])dataGridOrderList.DataContext;
            DataListItem   selectedOrder = orderList[dataGridOrderList.SelectedIndex];

            List <FileListItem> fileList     = (List <FileListItem>)gridFileList.DataContext;
            FileListItem        selectedFile = fileList[gridFileList.SelectedIndex];

            MESPDownloadUpload.OrderId = MESPDownloadUpload.OrderNo = selectedOrder.DataID;

            string selectedDicomPackageLocalPath =
                new FileInfo(Path.Combine(Path.Combine(SelectedUser, selectedOrder.DataID),
                                          selectedOrder.PatientName + "-" + selectedOrder.PatientAge + "-" + selectedOrder.PatientSex + "-" + selectedOrder.InstitutionName + "-" + selectedOrder.AcquisitionDate + "-" + selectedFile.FileName)).FullName;

            ThreadPool.QueueUserWorkItem(delegate { Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum); });
        }
예제 #26
0
        public bool NeedDownloadFile(FileListItem file, bool isOnRepair = false)
        {
            string filePath = file.FullPath;

            if (!File.Exists(filePath) || file.Size != new FileInfo(filePath).Length)
            {
                return(true);
            }

            if (!file.VerifyMD5 && !isOnRepair)
            {
                return(false);
            }

            return(file.MD5 != MD5Helper.GetChecksumBuffered(filePath));
        }
        private void btnDeleteUserFile_Click(object sender, RoutedEventArgs e)
        {
            if (listboxUserFiles.SelectedIndex < 0 || _UserFileList == null)
            {
                return;
            }
            FileListItem selectedFile = _UserFileList[listboxUserFiles.SelectedIndex];

            if (selectedFile == null)
            {
                return;
            }
            if (System.Windows.Forms.MessageBox.Show("确定删除吗?", "", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                ThreadPool.QueueUserWorkItem(delegate
                {
                    DeleteOrderDicomFileWorker.SendDeleteOrderDicomFileRequeset(
                        selectedFile.OrderId,
                        selectedFile.FileName,
                        successCallback : delegate(DeleteOrderDicomFileResponse response)
                    {
                        Dispatcher.Invoke(new Action(delegate
                        {
                            ResumeGUI();
                            listboxUserFiles.Items.Clear();
                            GetUserFiles();
                        }));
                    },
                        failureCallback : delegate(string failureReason)
                    {
                        Dispatcher.Invoke(new Action(delegate
                        {
                            ResumeGUI();
                            MessageBox.Show("删除文件失败。" + failureReason, "", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        }));
                    },
                        errorCallback : delegate(Exception ex)
                    {
                        Dispatcher.Invoke(new Action(delegate
                        {
                            Util.ShowExceptionMessage(ex, "删除文件出错。");
                            ResumeGUI();
                        }));
                    });
                });
            }
        }
예제 #28
0
        private void MessageList_DownloadFile(object sender, EventArgs e)
        {
            FileListItem fileItem = (FileListItem)sender;

            if (fileItem.File.Data == null)
            {
                EventHandler <FileDownloadedEventArgs> eventDelegate = null;

                eventDelegate = (s, args) =>
                {
                    if (fileItem.File.Downloaded)
                    {
                        if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool"))
                        {
                            Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool");
                        }

                        DownloadHelper.DownloadFile(fileItem.File, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool");

                        _parent.RaiseNotification(new NotificationModel("", "", null,
                                                                        DateTime.Now, false, true)
                        {
                            Text = "Plik został pobrany"
                        });
                    }
                };
                _parent.DownloadClient.FileDownloaded += eventDelegate;
                _parent.DownloadClient.DownloadQueue.Add(fileItem.File);
            }
            else
            {
                if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool"))
                {
                    Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool");
                }

                DownloadHelper.DownloadFile(fileItem.File, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/CRMTool");

                _parent.RaiseNotification(new NotificationModel("", "", null,
                                                                DateTime.Now, false, true)
                {
                    Text = "Plik został pobrany"
                });
            }
        }
예제 #29
0
 public void Report(FileListItem item)
 {
     try
     {
         if (item.Info is DirectoryInfo)
         {
             item.IconSource = new BitmapImage(new Uri("/Images/Icons/GenericFolderIcon.ico", UriKind.RelativeOrAbsolute));
         }
         else
         {
             System.Drawing.Icon icon = System.Drawing.Icon.ExtractAssociatedIcon(item.Info.FullName);
             item.IconSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(icon.Handle, new Int32Rect(0, 0, icon.Width, icon.Height), BitmapSizeOptions.FromEmptyOptions());
         }
     }
     catch
     { }
     Items.Add(item);
 }
 private void Download(FileListItem selectedFile, string selectedDicomPackageLocalPath, 云数据类型Enum 云数据类型Enum)
 {
     DownloadFileWorker.Download(
         selectedFile,
         selectedDicomPackageLocalPath,
         delegate(string filename)
     {
         UIUtil.Invoke(this, delegate
         {
             try {
                 string tempPath = selectedDicomPackageLocalPath.Substring(0, selectedDicomPackageLocalPath.LastIndexOf(Path.DirectorySeparatorChar));
                 System.Diagnostics.Process.Start(tempPath);
                 ResumeGUI();
             }
             catch (Exception ex) {
                 MessageBox.Show(ex.ToString());
             }
         });
     },
         delegate(string errMsg)
     {
         UIUtil.Invoke(this, delegate
         {
             MessageBox.Show(errMsg);
             ResumeGUI();
         });
     },
         delegate(Exception ex)
     {
         UIUtil.Invoke(this, delegate
         {
             Util.ShowExceptionMessage(ex);
             //Download(selectedFile, selectedDicomPackageLocalPath, 云数据类型Enum.处理结果);
             ResumeGUI();
         });
     },
         delegate(ProgressArgs progressArgs)
     {
         UIUtil.Invoke(this, delegate
         {
             Console.WriteLine(progressArgs);
         });
     }, 云数据类型Enum);
 }
예제 #31
0
        public void RefreshFileList()
        {
            m_updatingList = true;
            lstFiles.Items.Clear();
            m_fileListItems = new List<FileListItem>();
            foreach (string file in FileLister())
            {
                BitmapImage bitmap = null;
                if (Preview && !string.IsNullOrEmpty(file))
                {
                    bitmap = new BitmapImage();
                    bitmap.BeginInit();
                    bitmap.UriSource = new Uri(file);
                    bitmap.EndInit();
                }

                var item = new FileListItem
                {
                    Filename = Path.GetFileName(file),
                    Image = bitmap,
                    ImageVisibility = (bitmap == null) ? Visibility.Collapsed : Visibility.Visible
                };

                if (string.IsNullOrEmpty(item.Filename))
                {
                    item.Title = "None";
                }
                else
                {
                    item.Title = item.Filename;
                }

                lstFiles.Items.Add(item);
                m_fileListItems.Add(item);
            }
            m_updatingList = false;
        }