private void UpdateToDB(File_DownloadItemViewModel fileItem, bool IsFinished = false) { if (fileItem != null) { string text = ""; int num = 0; try { if (IsFinished) { text = "update FileRow set Url=@1,StorageFileName=@2\r\n , DownloadBytes=@3,TotalBytes=@4 ,FileVersion=@5,FinishedFileVersion=@6 where ID=@7 and UserID=@8 and MeetingID=@9"; fileItem.CanUpdate = false; num = MSCE.ExecuteNonQuery(text, fileItem.Url, fileItem.StorageFileName, fileItem.DownloadBytes.ToString(), fileItem.TotalBytes.ToString(), fileItem.FileVersion.ToString(), fileItem.FileVersion.ToString(), fileItem.ID, fileItem.UserID, fileItem.MeetingID); } else { text = "update FileRow set Url=@1,StorageFileName=@2\r\n , DownloadBytes=@3,TotalBytes=@4 where ID=@6 and UserID=@7 and MeetingID=@8"; num = MSCE.ExecuteNonQuery(text, fileItem.Url, fileItem.StorageFileName, fileItem.DownloadBytes.ToString(), fileItem.TotalBytes.ToString(), fileItem.ID, fileItem.UserID, fileItem.MeetingID); } } catch (Exception ex) { LogTool.Debug(ex); } if (num < 1) { LogTool.Debug(new Exception("DB失敗:" + text)); } } }
private void DownloadError(File_DownloadItemViewModel fileItem) { if (fileItem != null) { DeleteFiles(fileItem); ResetFileItemDB(fileItem); if (this.MeetingDataCT_DownloadError_Event != null) { this.MeetingDataCT_DownloadError_Event(fileItem); } if (this.Home_UnZipError_Event != null) { this.Home_UnZipError_Event(string.Format("檔名: {0},{1}", (NowFileItem.FileName == null) ? "" : NowFileItem.FileName, Enum.GetName(typeof(DownloaderType), DownloaderType.出錯))); Thread.Sleep(1100); } bool flag = false; lock (thisLock) { if (list.Count == 0) { flag = true; } } if (flag && this.MeetingRoom_DownloadFileToErrorCompleted_Event != null) { this.MeetingRoom_DownloadFileToErrorCompleted_Event(fileItem); } } }
private void ResetFileItemDB(File_DownloadItemViewModel fileItem) { if (fileItem == null) { return; } fileItem.DownloadBytes = 0; fileItem.TotalBytes = 0; fileItem.LastPercentage = 0; if (File.Exists(fileItem.StorageFilePath) == true) { File.Delete(fileItem.StorageFilePath); } //寫DB string SQL = @"update FileRow set Url=@1,StorageFileName=@2 , DownloadBytes=@3,TotalBytes=@4 where ID=@6 and UserID=@7 and MeetingID=@8"; int successNum = MSCE.ExecuteNonQuery(SQL , fileItem.Url , fileItem.StorageFileName , fileItem.DownloadBytes.ToString() , fileItem.TotalBytes.ToString() , fileItem.ID , fileItem.UserID , fileItem.MeetingID); if (successNum < 1) { LogTool.Debug(new Exception("DB失敗:" + SQL)); } }
private double GetNowMeetingFilesTotalPercent(File_DownloadItemViewModel fileItem) { double totalPercent = 0; DataTable dt = MSCE.GetDataTable(@"select count(ID) as FinishedFiles from FileRow where UserID =@1 and MeetingID=@2 and DownloadBytes!=0 and DownloadBytes >= TotalBytes;" , UserID, userMeeting.ID); if (dt.Rows.Count > 0) { int.TryParse(dt.Rows[0]["FinishedFiles"].ToString(), out FinishedFiles); } if (TotalFiles > 0) { totalPercent = ((double)FinishedFiles / (double)TotalFiles) * 100.0; if (fileItem.NowPercentage < 100) { //小於100趴才需要,後面這一段+ (fileItem.NowPercentage / 100.0) * (100.0 / (double)TotalFiles) totalPercent += (fileItem.NowPercentage / 100.0) * (100.0 / (double)TotalFiles); } } return(totalPercent); }
private void MeetingRoom_DownloadFileToErrorCompleted_Callback(File_DownloadItemViewModel fileItem) { //先判斷是否要invoke if (this.Dispatcher.CheckAccess() == false) { // 這裡是下載事件處理,優先權設定為ContextIdle => 列舉值為 3。 幕後作業完成後,會處理作業。 this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, new Action <File_DownloadItemViewModel>(MeetingRoom_DownloadFileToErrorCompleted_Callback), fileItem); } else { ForceStopAjaxLoader = true; double totalPercent = GetNowMeetingFilesTotalPercent(fileItem); // 全部都已經下載完成或失敗,要變成暫停狀態,一定不會是100% this.btnDownloadForbidden.Visibility = Visibility.Collapsed; this.btnRead2Forbidden.Visibility = Visibility.Collapsed; this.btnDelete.Visibility = Visibility.Collapsed; this.btnDownload.Visibility = Visibility.Collapsed; this.btnPause.Visibility = Visibility.Collapsed; this.txtPercent.Text = ((int)totalPercent).ToString() + " %"; this.txtPercent.Foreground = Brushes.Black; this.txtPercent.Visibility = Visibility.Visible; this.pb.Value = totalPercent; this.pb.Foreground = Brushes.Orange; this.pb.Background = Brushes.Black; this.pb.Visibility = Visibility.Visible; this.btnPausing.Visibility = Visibility.Visible; } }
private void StartNextFileItemDownload(File_DownloadItemViewModel fileItem) { if (downloaderType == DownloaderType.停止) { // 停止之後不能馬上加入不然 // 有可能會再開新執行序下載 // 清空所有列表 lock (thisLock) { list.Clear(); } } // 設定成 沒有正在下載 和 沒有正在下載的物件 //string MeetingID = fileItem.MeetingID; NowFileItem = null; downloaderType = DownloaderType.沒有任何檔案下載中; // 不同線程的回呼,不會造成Recursive堆疊上限 // 如果不是停止就開始新的檔案物件下載 //FileDownloader fileDownloader = Singleton_FileDownloader.GetInstance(MeetingID); if (this.downloaderType == DownloaderType.沒有任何檔案下載中) { //ThreadPool.QueueUserWorkItem(callback => { this.Start(); }); Task.Factory.StartNew(() => this.Start(), TaskCreationOptions.LongRunning); } }
private void MeetingRoom_DownloadFileStart_Callback(File_DownloadItemViewModel fileItem) { if (HasReceiveStart_callback == false) { HasReceiveStart_callback = true; MeetingRoom_DownloadProgressChanged_Callback(fileItem, true); } }
private void DeleteFiles(File_DownloadItemViewModel fileItem) { if (File.Exists(fileItem.StorageFilePath)) { File.Delete(fileItem.StorageFilePath); } DirectoryTool.FullDeleteDirectories(fileItem.UnZipFilePath); }
public PDFFactoryRow(int index, File_DownloadItemViewModel fileItem) { InitializeComponent(); this.index = index; sb = (Storyboard)TryFindResource("sb"); this.fileItem = fileItem; base.Loaded += new RoutedEventHandler(PDFFactoryRow_Loaded); }
private void DeleteFiles(File_DownloadItemViewModel fileItem) { // 解壓縮失敗,要記得把原始檔案和解壓縮資料夾一起刪除 if (File.Exists(fileItem.StorageFilePath) == true) { File.Delete(fileItem.StorageFilePath); } DirectoryTool.FullDeleteDirectories(fileItem.UnZipFilePath); }
// 帳號,姓名,裝置,燈號 public PDFFactoryRow(int index, File_DownloadItemViewModel fileItem) { //MouseTool.ShowLoading(); InitializeComponent(); this.index = index; sb = (Storyboard)this.TryFindResource("sb"); this.fileItem = fileItem; this.Loaded += PDFFactoryRow_Loaded; //MouseTool.ShowArrow(); }
public void _003CInitSelectDB_003Eb__2() { int num = 0; foreach (MeetingDataDownloadFileFile file in FileList) { num++; File_DownloadItemViewModel fileItem = FileItemTool.Gen(file, _003C_003E4__this.UserID, _003C_003E4__this.MeetingID); _003C_003E4__this.PDFFactoryRowSP.Children.Add(new PDFFactoryRow(num, fileItem)); } }
private void UpdateToDB(File_DownloadItemViewModel fileItem, bool IsFinished = false) { if (fileItem == null) { return; } string SQL = ""; int success = 0; try { if (IsFinished == true) { SQL = @"update FileRow set Url=@1,StorageFileName=@2 , DownloadBytes=@3,TotalBytes=@4 ,FileVersion=@5,FinishedFileVersion=@6 where ID=@7 and UserID=@8 and MeetingID=@9"; fileItem.CanUpdate = false; success = MSCE.ExecuteNonQuery(SQL , fileItem.Url , fileItem.StorageFileName , fileItem.DownloadBytes.ToString() , fileItem.TotalBytes.ToString() , fileItem.FileVersion.ToString() , fileItem.FileVersion.ToString() , fileItem.ID , fileItem.UserID , fileItem.MeetingID); } else { SQL = @"update FileRow set Url=@1,StorageFileName=@2 , DownloadBytes=@3,TotalBytes=@4 where ID=@6 and UserID=@7 and MeetingID=@8"; success = MSCE.ExecuteNonQuery(SQL , fileItem.Url , fileItem.StorageFileName , fileItem.DownloadBytes.ToString() , fileItem.TotalBytes.ToString() , fileItem.ID , fileItem.UserID , fileItem.MeetingID); } } catch (Exception ex) { LogTool.Debug(ex); } if (success < 1) { LogTool.Debug(new Exception("DB失敗:" + SQL)); } }
public void _003CGetMeetingData_DoAction_003Eb__23() { FileDownloader instance = Singleton_FileDownloader.GetInstance(md.ID); instance.Stop(); List <MeetingDataDownloadFileFile> list = new List <MeetingDataDownloadFileFile>(); try { MeetingDataMeetingsFileFile[] fileList = md.MeetingsFile.FileList; foreach (MeetingDataMeetingsFileFile meetingDataMeetingsFileFile in fileList) { MeetingDataDownloadFileFile meetingDataDownloadFileFile = new MeetingDataDownloadFileFile(); meetingDataDownloadFileFile.AgendaID = "record"; meetingDataDownloadFileFile.FileName = meetingDataMeetingsFileFile.FileName; meetingDataDownloadFileFile.ID = meetingDataMeetingsFileFile.ID; meetingDataDownloadFileFile.Url = meetingDataMeetingsFileFile.Url; meetingDataDownloadFileFile.version = meetingDataMeetingsFileFile.version; list.Add(meetingDataDownloadFileFile); } } catch (Exception ex) { LogTool.Debug(ex); } list.AddRange(Enumerable.ToList(md.DownloadFile.DownloadFileList)); _003C_003E4__this.TotalFiles = list.Count; List <File_DownloadItemViewModel> list2 = new List <File_DownloadItemViewModel>(); foreach (MeetingDataDownloadFileFile item in list) { File_DownloadItemViewModel file_DownloadItemViewModel = FileItemTool.Gen(item, _003C_003E4__this.UserID, md.ID); if (file_DownloadItemViewModel.DownloadBytes == 0 || file_DownloadItemViewModel.DownloadBytes < file_DownloadItemViewModel.TotalBytes) { list2.Add(file_DownloadItemViewModel); } } if (!instance.HasMeetingRoom_DownloadFileStart_Event()) { instance.MeetingRoom_DownloadFileStart_Event += _003C_003E4__this.Start_callback; } if (!instance.HasMeetingRoom_DownloadProgressChanged_Event()) { instance.MeetingRoom_DownloadProgressChanged_Event += _003C_003E4__this.Progress_callback; } if (!instance.HasMeetingRoom_DownloadFileToErrorCompleted_Event()) { instance.MeetingRoom_DownloadFileToErrorCompleted_Event += _003C_003E4__this.ErrorFinish_callback; } instance.AddItem(list2); }
private void DownloadFileStart(File_DownloadItemViewModel fileItem) { if (fileItem != null) { if (this.MeetingDataCT_DownloadFileStart_Event != null) { this.MeetingDataCT_DownloadFileStart_Event(fileItem); } if (this.MeetingRoom_DownloadFileStart_Event != null) { this.MeetingRoom_DownloadFileStart_Event(NowFileItem); } } }
private void DownloadProgressChanged(File_DownloadItemViewModel fileItem) { if (fileItem != null) { if (this.MeetingDataCT_DownloadProgressChanged_Event != null) { this.MeetingDataCT_DownloadProgressChanged_Event(fileItem); } if (this.MeetingRoom_DownloadProgressChanged_Event != null) { this.MeetingRoom_DownloadProgressChanged_Event(fileItem); } } }
private void MeetingRoom_DownloadProgressChanged_Callback(File_DownloadItemViewModel fileItem, bool ForceUpdate) { //先判斷是否要invoke if (this.Dispatcher.CheckAccess() == false) { // 這裡是下載事件處理,優先權設定為ContextIdle => 列舉值為 3。 幕後作業完成後,會處理作業。 //this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, new Action<File_DownloadItemViewModel, bool>(MeetingRoom_DownloadProgressChanged_Callback), fileItem, ForceUpdate); this.Dispatcher.BeginInvoke(new Action <File_DownloadItemViewModel, bool>(MeetingRoom_DownloadProgressChanged_Callback), fileItem, ForceUpdate); } else { ForceStopAjaxLoader = true; double totalPercent = GetNowMeetingFilesTotalPercent(fileItem); if (totalPercent >= 100) { // 下載完了,顯示可以刪除的圖示 this.btnDownloadForbidden.Visibility = Visibility.Collapsed; this.btnRead2Forbidden.Visibility = Visibility.Collapsed; this.btnDownload.Visibility = Visibility.Collapsed; this.btnPausing.Visibility = Visibility.Collapsed; this.txtPercent.Visibility = Visibility.Collapsed; this.pb.Visibility = Visibility.Collapsed; this.btnPause.Visibility = Visibility.Collapsed; this.btnDelete.Visibility = Visibility.Visible; } else if (totalPercent - pb.Value > 1 || ForceUpdate == true) { // 還沒下載完了,持續更新進度 this.btnDownloadForbidden.Visibility = Visibility.Collapsed; this.btnRead2Forbidden.Visibility = Visibility.Collapsed; this.btnDelete.Visibility = Visibility.Collapsed; this.btnDownload.Visibility = Visibility.Collapsed; this.btnPausing.Visibility = Visibility.Collapsed; this.txtPercent.Text = ((int)totalPercent).ToString() + " %"; this.txtPercent.Foreground = Brushes.Black; this.txtPercent.Visibility = Visibility.Visible; this.pb.Value = totalPercent; this.pb.Foreground = Brushes.Orange; this.pb.Background = Brushes.Black; this.pb.Visibility = Visibility.Visible; this.btnPause.Visibility = Visibility.Visible; } } }
private void btnPausing_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { btnPausing.Visibility = Visibility.Collapsed; FileDownloader instance = Singleton_FileDownloader.GetInstance(MeetingID); File_DownloadItemViewModel inList = instance.GetInList(MeetingID); instance.AddItem(fileItem); if (inList != null) { if (instance.NowFileItem != null && instance.NowFileItem.ID.Equals(fileItem.ID)) { btnPausing.Visibility = Visibility.Collapsed; txtPercent.Text = (int)inList.LastPercentage + " %"; txtPercent.Foreground = Brushes.Black; txtPercent.Visibility = Visibility.Visible; pb.Value = inList.NowPercentage; pb.Foreground = Brushes.Orange; pb.Background = Brushes.Black; pb.Visibility = Visibility.Visible; btnPause.Visibility = Visibility.Visible; } else { btnPausing.Visibility = Visibility.Collapsed; txtPercent.Text = "等待中"; txtPercent.Foreground = Brushes.Gray; txtPercent.Visibility = Visibility.Visible; pb.Value = inList.NowPercentage; pb.Foreground = Brushes.Wheat; pb.Background = Brushes.Gray; pb.Visibility = Visibility.Visible; btnPause.Visibility = Visibility.Visible; } } else { btnPausing.Visibility = Visibility.Collapsed; txtPercent.Text = "等待中"; txtPercent.Foreground = Brushes.Gray; txtPercent.Visibility = Visibility.Visible; pb.Foreground = Brushes.Wheat; pb.Background = Brushes.Gray; pb.Visibility = Visibility.Visible; btnPause.Visibility = Visibility.Visible; } }
private void DownloadFileStart(File_DownloadItemViewModel fileItem) { if (fileItem == null) { return; } //呼叫完成event並且在主執行序執行 if (MeetingDataCT_DownloadFileStart_Event != null) { MeetingDataCT_DownloadFileStart_Event(fileItem); } if (MeetingRoom_DownloadFileStart_Event != null) { MeetingRoom_DownloadFileStart_Event(NowFileItem); } }
private double GetNowMeetingFilesTotalPercent(File_DownloadItemViewModel fileItem) { double num = 0.0; DataTable dataTable = MSCE.GetDataTable("select count(ID) as FinishedFiles from FileRow where UserID =@1 and MeetingID=@2 and DownloadBytes!=0 and DownloadBytes >= TotalBytes;", UserID, userMeeting.ID); if (dataTable.Rows.Count > 0) { int.TryParse(dataTable.Rows[0]["FinishedFiles"].ToString(), out FinishedFiles); } if (TotalFiles > 0) { num = (double)FinishedFiles / (double)TotalFiles * 100.0; if (fileItem.NowPercentage < 100.0) { num += fileItem.NowPercentage / 100.0 * (100.0 / (double)TotalFiles); } } return(num); }
private void ResetFileItemDB(File_DownloadItemViewModel fileItem) { if (fileItem != null) { fileItem.DownloadBytes = 0L; fileItem.TotalBytes = 0L; fileItem.LastPercentage = 0.0; if (File.Exists(fileItem.StorageFilePath)) { File.Delete(fileItem.StorageFilePath); } string text = "update FileRow set Url=@1,StorageFileName=@2\r\n , DownloadBytes=@3,TotalBytes=@4 where ID=@6 and UserID=@7 and MeetingID=@8"; int num = MSCE.ExecuteNonQuery(text, fileItem.Url, fileItem.StorageFileName, fileItem.DownloadBytes.ToString(), fileItem.TotalBytes.ToString(), fileItem.ID, fileItem.UserID, fileItem.MeetingID); if (num < 1) { LogTool.Debug(new Exception("DB失敗:" + text)); } } }
public File_DownloadItemViewModel GetInList(string MeetingDataDownloadFileFile_ID) { //if (NowFileItem == null) // return list.Where(x => x.ID.Equals(MeetingDataDownloadFileFile_ID)).FirstOrDefault(); File_DownloadItemViewModel rtn = new File_DownloadItemViewModel(); lock (this) { if (NowFileItem != null && NowFileItem.ID.Equals(MeetingDataDownloadFileFile_ID)) { rtn = NowFileItem; } else //不包含暫停的下載物件,因為已經從list取出了,所以會回傳null { rtn = list.Where(x => x.ID.Equals(MeetingDataDownloadFileFile_ID)).FirstOrDefault(); } } return(rtn); }
public void AddItem(File_DownloadItemViewModel fileItem) { lock (this) { if (fileItem == null) { return; } list.Add(fileItem); } //FileDownloader fileDownloader = Singleton_FileDownloader.GetInstance(fileItem.MeetingID); // 如果沒有在下載中 if (this.downloaderType == DownloaderType.沒有任何檔案下載中 || this.downloaderType == DownloaderType.停止) { //ThreadPool.QueueUserWorkItem(callback => { this.Start(); }); Task.Factory.StartNew(() => this.Start());//, TaskCreationOptions.LongRunning); } }
private void DownloadError(File_DownloadItemViewModel fileItem) { if (fileItem == null) { return; } DeleteFiles(fileItem); ResetFileItemDB(fileItem); if (MeetingDataCT_DownloadError_Event != null) { MeetingDataCT_DownloadError_Event(fileItem); } if (Home_UnZipError_Event != null) { Home_UnZipError_Event(string.Format("檔名: {0},{1}" , NowFileItem.FileName == null ? "" : NowFileItem.FileName , Enum.GetName(typeof(DownloaderType), DownloaderType.出錯))); Thread.Sleep(1100); } // 要記得Check現在的下載佇列List是否為0 // 也就是最後一個下載,但是下載失敗了,就要呼叫改變MeetingRoom變成暫停的狀態 bool IsLastFileItemFinishedButError = false; lock (thisLock) { if (list.Count == 0) { IsLastFileItemFinishedButError = true; } } if (IsLastFileItemFinishedButError == true) { if (MeetingRoom_DownloadFileToErrorCompleted_Event != null) { MeetingRoom_DownloadFileToErrorCompleted_Event(fileItem); } } }
private void btnPause_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { btnPause.Visibility = Visibility.Collapsed; FileDownloader instance = Singleton_FileDownloader.GetInstance(MeetingID); File_DownloadItemViewModel inList = instance.GetInList(MeetingID); instance.Pause(meetingDataDownloadFileFile.ID); int num = 0; num = ((inList == null) ? ((int)fileItem.NowPercentage) : ((int)inList.NowPercentage)); btnPause.Visibility = Visibility.Collapsed; txtPercent.Text = num + " %"; txtPercent.Foreground = Brushes.Gray; txtPercent.Visibility = Visibility.Visible; pb.Value = num; pb.Foreground = Brushes.Wheat; pb.Background = Brushes.Gray; pb.Visibility = Visibility.Visible; btnPausing.Visibility = Visibility.Visible; }
// 準備做暫停 private void btnPause_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // 隱藏要先做 btnPause.Visibility = Visibility.Collapsed; FileDownloader fileDownloader = Singleton_FileDownloader.GetInstance(MeetingID); File_DownloadItemViewModel _InListFileItem = fileDownloader.GetInList(MeetingID); fileDownloader.Pause(meetingDataDownloadFileFile.ID); // 等待下載器自己暫停。 //Thread.Sleep(500); // 進度和進度條是灰色可見 // 進度條文字顯示進度 int percent = 0; if (_InListFileItem != null) { percent = (int)_InListFileItem.NowPercentage; } else { percent = (int)this.fileItem.NowPercentage; } // 進度和進度條是灰色可見 // 進度條文字顯示進度 // 藍色暫停不可見 // 橘色暫停可見 btnPause.Visibility = Visibility.Collapsed; txtPercent.Text = percent.ToString() + " %"; txtPercent.Foreground = Brushes.Gray; txtPercent.Visibility = Visibility.Visible; pb.Value = percent; pb.Foreground = Brushes.Wheat; pb.Background = Brushes.Gray; pb.Visibility = Visibility.Visible; btnPausing.Visibility = Visibility.Visible; return; }
public void AddItem(File_DownloadItemViewModel fileItem) { Action action = null; lock (this) { if (fileItem == null) { return; } list.Add(fileItem); } if (downloaderType == DownloaderType.沒有任何檔案下載中 || downloaderType == DownloaderType.停止) { TaskFactory factory = Task.Factory; if (action == null) { action = new Action(_003CAddItem_003Eb__6); } factory.StartNew(action); } }
public File_DownloadItemViewModel GetInList(string MeetingDataDownloadFileFile_ID) { Func <File_DownloadItemViewModel, bool> func = null; _003C_003Ec__DisplayClass14 _003C_003Ec__DisplayClass = new _003C_003Ec__DisplayClass14(); _003C_003Ec__DisplayClass.MeetingDataDownloadFileFile_ID = MeetingDataDownloadFileFile_ID; File_DownloadItemViewModel file_DownloadItemViewModel = new File_DownloadItemViewModel(); lock (this) { if (NowFileItem != null && NowFileItem.ID.Equals(_003C_003Ec__DisplayClass.MeetingDataDownloadFileFile_ID)) { return(NowFileItem); } List <File_DownloadItemViewModel> source = list; if (func == null) { func = new Func <File_DownloadItemViewModel, bool>(_003C_003Ec__DisplayClass._003CGetInList_003Eb__12); } return(Enumerable.FirstOrDefault(Enumerable.Where(source, func))); } }
private void UnzipTrigger(File_DownloadItemViewModel fileItem) { if (fileItem == null) { return; } bool flag = false; if (this.MeetingDataCT_UnZip_Event != null) { this.MeetingDataCT_UnZip_Event(fileItem); } try { UnZipTool unZipTool = new UnZipTool(); flag = unZipTool.UnZip(fileItem.StorageFilePath, fileItem.UnZipFilePath, "", true); } catch (Exception ex) { LogTool.Debug(ex); } if (flag) { UpdateToDB(fileItem, true); fileItem.FileType = MeetingFileType.已下載完成; return; } ResetFileItemDB(fileItem); fileItem.FileType = MeetingFileType.解壓縮失敗; DeleteFiles(fileItem); if (this.MeetingDataCT_UnZipError_Event != null) { this.MeetingDataCT_UnZipError_Event(fileItem); } if (this.Home_UnZipError_Event != null) { this.Home_UnZipError_Event(string.Format("檔名: {0},{1}", fileItem.FileName, Enum.GetName(typeof(MeetingFileType), MeetingFileType.解壓縮失敗))); } }
private void DownloadProgressChanged(File_DownloadItemViewModel fileItem) { if (fileItem == null) { return; } //呼叫完成event並且在主執行序執行 if (MeetingDataCT_DownloadProgressChanged_Event != null) { MeetingDataCT_DownloadProgressChanged_Event(fileItem); } if (MeetingRoom_DownloadProgressChanged_Event != null) { MeetingRoom_DownloadProgressChanged_Event(fileItem); } // 讓事件得以舒緩,加到100毫秒似乎也差異不大。 // 一樣會卡卡的。 //Thread.Sleep(1); }