public FileDownloadViewModel(IUnityContainer container, IServiceLocator serviceLocator, CcdRecordModel model) { _container = container; _serviceLocator = serviceLocator; CloseWindow = new DelegateCommand <object>(OnCloseWindow); ScanDataCmd = new DelegateCommand(OnScanData); _ccdModel = model; dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background); dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background) { Interval = TimeSpan.FromSeconds(1) }; dispatcherTimer.Tick += DispatcherTimer_Tick; LoadCmd = new DelegateCommand(OnLoad); if (_ccdModel.frame_number < 2) { EndIndex = 0; MaxIndex = 0; } else { EndIndex = (int)_ccdModel.frame_number + 1; MaxIndex = (int)_ccdModel.frame_number + 1; } }
private void InitMenu(CcdRecordModel model) { //MenuItem mi0 = new MenuItem() //{ // Header = "下载", // Command = FileDownloadCmd, // CommandParameter = model //}; //Menu.Add(mi0); MenuItem mi = new MenuItem() { Header = "导出", Command = FileReportCmd, CommandParameter = model }; Menu.Add(mi); mi = new MenuItem() { Header = "删除", Command = DeleteCmd, CommandParameter = model }; Menu.Add(mi); mi = new MenuItem() { Header = "刷新", Command = RefreshCmd, CommandParameter = model }; Menu.Add(mi); }
private void OnFileReort(CcdRecordModel model) { if (model == null) { return; } var notification = new MessageNotification() { Title = "存储记录导出", Content = _container.Resolve <FileDownloadView>(new ParameterOverride("model", model)), }; PopupWindows.NormalNotificationRequest.Raise(notification, (callback) => { }); string selectDir = string.Empty; // var openFileDialog = new Microsoft.Win32.OpenDiDialog(); //System.Windows.Forms.FolderBrowserDialog folder = new System.Windows.Forms.FolderBrowserDialog(); //var result = folder.ShowDialog(); //if (result == System.Windows.Forms.DialogResult.OK) //{ // string folderName = folder.SelectedPath; // selectDir = folderName; //} //if (string.IsNullOrEmpty(selectDir)) // return; }
/// <summary> /// 获取记录列表 /// </summary> public void Get_Record_List() { CcdRecordModels.Clear(); SDKApi.EagleData_RefetchRecList(); int record_num = SDKApi.EagleData_GetRecordNumber(); if (record_num > 0) { IntPtr intPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EagleData_Record_Id)) * record_num); int nStructLength = Marshal.SizeOf(typeof(EagleData_Record)); int actual_num = SDKApi.EagleData_GetRecordList(intPtr, record_num); _recordIds = new EagleData_Record_Id[actual_num]; for (int i = 0; i < actual_num; i++) { _recordIds[i] = (EagleData_Record_Id)Marshal.PtrToStructure(intPtr + Marshal.SizeOf(typeof(EagleData_Record_Id)) * i, typeof(EagleData_Record_Id)); // EagleData_Record ccd = new EagleData_Record(); var record = SDKApi.EagleData_GetRecordAndAllocMemory(_recordIds[i]); var ccd = (EagleData_Record)Marshal.PtrToStructure(record, typeof(EagleData_Record)); //得到数据项 var item = (EagleData_CcdRecord)Marshal.PtrToStructure(ccd.ccd_record_list, typeof(EagleData_CcdRecord)); var model = new CcdRecordModel() { data_size = item.data_size, data_source_type = item.data_source_type, disk_bitmap = item.disk_bitmap, end_time = item.end_time, frame_number = item.frame_number,//镇数 head_size = item.head_size, id = item.id, pixel_sampling_type = item.pixel_sampling_type, record_id = item.record_id, record_index = item.record_index, start_time = item.start_time, task_index = item.task_index, TaskName = item.record_id.task_name, RecordName = item.record_id.task_name + item.record_id.start_time, }; long totalsize = 0; if (item.frame_number < 2) { totalsize = 0; } else { totalsize = (long)(item.frame_number + 1) * item.data_size; } model.TotalSize = String.Format("{0:F2}GB", totalsize / (1024.0 * 1024.0 * 1024.0)); CcdRecordModels.Add(model); SDKApi.EagleData_FreeRecordMemory(record); // var r1 = SDKApi.EagleData_DeleteRecord(list.record_id, list.id); } Marshal.FreeHGlobal(intPtr); } }
private void OnDeleteFile(CcdRecordModel model) { var result = MessageBox.Show("你确定要删除当前记录吗?", "删除提醒", MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (result == MessageBoxResult.OK) { int ret = SDKApi.EagleData_DeleteRecord(model.record_id, model.id); if (ret != 0) { _eventAggregator.GetEvent <InfoEventArgs>().Publish("删除存储记录失败!\n"); MessageBox.Show("删除记录失败!"); } else { Get_Record_List(); } } }