void view_PrepareMedia(object sender, EventArgs e)
        {
            MediaCreationManagement             mediaObject;
            GeneralPurposeCDDVDProfileProcessor processor;

            mediaObject = GetMediaCreationObject();

            MediaComposer mediaComposer = new MediaComposer(mediaObject, ViewerContainer.State.ActiveWorkstation.StorageDataAccess);

            processor = new GeneralPurposeCDDVDProfileProcessor();

            processor.SetProfile(GetProfile(MediaType.DVD));

            processor.ViewerDirectory = (__View.IncludeViewer) ? __View.ViewerDirectory : string.Empty;

            if (__View.IncludeViewer && __View.CreateAutoRun)
            {
                processor.NonDicomFiles = new string[] { CreateAutoRunFile() };
            }

            mediaComposer.ProfileProcessors.Add(processor);

            //__View.MediaDirectory = mediaComposer.ComposeMedia ( __View.MediaBaseFolder ) ;
            {
                var taskCreateMedia = new LTTask <string>();
                taskCreateMedia.SetTask(() => { return(mediaComposer.ComposeMedia(__View.MediaBaseFolder)); });
                TaskDialogFactory.Create(taskCreateMedia, "Preparing media...").ShowDialog();
                if (taskCreateMedia.IsCompletedWithErrors())
                {
                    throw taskCreateMedia.GetError();
                }
                __View.MediaDirectory = taskCreateMedia.GetResult();
            }

            __View.TotalSize = GetFormattedSize(GetFolderSize(__View.MediaDirectory));

            __MediaObject = mediaObject;

            __MediaObject.SetCreationPath(__View.MediaDirectory);

            UpdateUI();

            SavePreferences();

            __View.SetMediaCreationWarning("");

            view_BurnMedia(this, e);
        }
コード例 #2
0
        void view_PrepareMedia(object sender, EventArgs e)
        {
            MediaCreationManagement             mediaObject;
            GeneralPurposeCDDVDProfileProcessor processor;

            mediaObject = GetMediaCreationObject( );

            MediaComposer mediaComposer = new MediaComposer(mediaObject, ViewerContainer.State.ActiveWorkstation.StorageDataAccess);

            processor = new GeneralPurposeCDDVDProfileProcessor( );

            processor.SetProfile(GetProfile(MediaType.DVD));

            processor.ViewerDirectory = (__View.IncludeViewer) ? __View.ViewerDirectory : string.Empty;

            if (__View.IncludeViewer && __View.CreateAutoRun)
            {
                processor.NonDicomFiles = new string [] { CreateAutoRunFile( ) };
            }

            mediaComposer.ProfileProcessors.Add(processor);

            __View.MediaDirectory = mediaComposer.ComposeMedia(__View.MediaBaseFolder);
            __View.TotalSize      = GetFormattedSize(GetFolderSize(__View.MediaDirectory));

            __MediaObject = mediaObject;

            __MediaObject.SetCreationPath(__View.MediaDirectory);

            UpdateUI( );

            SavePreferences( );

            __View.SetMediaCreationWarning("");

            view_BurnMedia(this, e);
        }
コード例 #3
0
        private void ComposeMediaObject
        (
            MediaCreationManagement mediaObject,
            IMediaCreationDataAccessAgent dataAccess
        )
        {
            try
            {
                MediaComposer mediaComposer;
                GeneralPurposeCDDVDProfileProcessor processor;
                string folderPath;


                mediaComposer = new MediaComposer(mediaObject);
                processor     = new GeneralPurposeCDDVDProfileProcessor( );

                if ((null == mediaObject.IncludeDisplayApplication ||
                     mediaObject.IncludeDisplayApplication.Value == YesNo.Undefined ||
                     mediaObject.IncludeDisplayApplication.Value == YesNo.Yes) &&
                    AddInsSession.AddInConfiguration.IncludeViewer)
                {
                    processor.ViewerDirectory = AddInsSession.AddInConfiguration.ViewerDirectory;
                    processor.NonDicomFiles   = AddInsSession.AddInConfiguration.Files.ToArray( );
                    processor.ViewerSize      = (int)Math.Ceiling(AddInsSession.AddInConfiguration.ViewerSize / 0x100000);
                }
                else
                {
                    string fileName;


                    fileName = AddInsSession.AddInConfiguration.RemoveViewerAutorunFile( );

                    processor.NonDicomFiles = AddInsSession.AddInConfiguration.Files.ToArray( );

                    if (!string.IsNullOrEmpty(fileName))
                    {
                        AddInsSession.AddInConfiguration.AddViewerAutorunFile(fileName);
                    }

                    processor.ViewerSize = 0;
                }

                processor.NonDicomDirectories = AddInsSession.AddInConfiguration.Folders.ToArray( );
                processor.NonDicomObjectsSize = (int)Math.Ceiling(AddInsSession.AddInConfiguration.FilesAndFoldersSize / 0x100000);

                mediaComposer.ProfileProcessors.Add(processor);

                folderPath = mediaComposer.ComposeMedia(AddInsSession.AddInConfiguration.MediaFolder);

                mediaObject.SetCreationPath(folderPath);

                if (null != dataAccess)
                {
                    MediaLocation   mediaLocation;
                    MediaLocation[] currentMediaLocation;

                    mediaLocation = new MediaLocation( );

                    mediaLocation.MediaSopInstanceUID = mediaObject.SopCommon.SOPInstanceUID;
                    mediaLocation.Location            = folderPath;

                    currentMediaLocation = dataAccess.FindMediaLocation(new string[] { mediaObject.SopCommon.SOPInstanceUID });

                    if (null == currentMediaLocation || currentMediaLocation.Length == 0)
                    {
                        dataAccess.InsertMediaLocation(new MediaLocation[] { mediaLocation });
                    }
                    else
                    {
                        dataAccess.UpdateMediaLocation(new MediaLocation[] { mediaLocation });
                    }
                }

                NotifyResult(mediaObject, null);
            }
            catch (Exception exception)
            {
                Logger.Global.Log(AddInsSession.ServerAE,
                                  AddInsSession.ServerAddress,
                                  AddInsSession.ServerPort,
                                  string.Empty,
                                  string.Empty,
                                  -1,
                                  DicomCommandType.Undefined,
                                  DateTime.Now,
                                  LogType.Error,
                                  MessageDirection.None,
                                  exception.Message,
                                  null,
                                  null);

                if (mediaObject.ExecutionStatus.ExecutionStatus != ExecutionStatus.Failure)
                {
                    mediaObject.ExecutionStatus.ExecutionStatus     = ExecutionStatus.Failure;
                    mediaObject.ExecutionStatus.ExecutionStatusInfo = ExecutionStatusInfo.UNKNOWN;
                }

                try
                {
                    if (null != dataAccess)
                    {
                        dataAccess.UpdateMediaObjectStatus(mediaObject.SopCommon.SOPInstanceUID, mediaObject.ExecutionStatus);
                    }

                    MediaService.MediaQueue.NotifyMediaObjectUpdated(mediaObject);

                    NotifyResult(mediaObject, exception);
                }
                //we don't care here if some subscriber throw an exception
                catch {}
            }
        }