예제 #1
0
        public BluRayTitleInfo GetTitleInfo()
        {
            foreach (ProcessOutputLineItem item in _processOutputLineItems)
            {
                EnumBluRayLineItemType type = _lineItemIdentifierService.GetLineItemType(item);

                switch (type)
                {
                case EnumBluRayLineItemType.BluRayTitleHeaderLine:
                    _bluRayTtileInfo.HeaderText = item.Text;
                    break;

                case EnumBluRayLineItemType.BluRayTitleChapterLine:
                    this.SetChapter(item);
                    break;

                case EnumBluRayLineItemType.BluRayTitleVideoLine:
                    this.SetVideo(item);
                    break;

                case EnumBluRayLineItemType.BluRayTitleAudioLine:
                    this.SetAudio(item);
                    break;

                case EnumBluRayLineItemType.BluRayTitleSubtitleLine:
                    this.SetSubtitle(item);
                    break;

                default:
                    break;
                }
            }

            return(_bluRayTtileInfo);
        }
        public List <BluRaySummaryInfo> GetSummaryList()
        {
            StringBuilder     sbHeader    = null;
            StringBuilder     sbDetail    = null;
            BluRaySummaryInfo summaryInfo = null;

            try
            {
                foreach (ProcessOutputLineItem item in _processOutputLineItems)
                {
                    EnumBluRayLineItemType type = _lineItemIdentifierService.GetLineItemType(item);
                    switch (type)
                    {
                    case EnumBluRayLineItemType.BluRaySummaryHeaderLine:
                        if (this.IsIdHeader(item))
                        {
                            sbHeader             = new StringBuilder();
                            sbDetail             = new StringBuilder();
                            summaryInfo          = new BluRaySummaryInfo();
                            summaryInfo.Eac3ToId = this.GetId(item);
                            sbHeader.Append(this.RemoveEac3ToIdFromHeaderLineItem(item));
                        }
                        else
                        {
                            sbHeader.AppendLine(string.Format(" {0}", item.Text));
                        }
                        break;

                    case EnumBluRayLineItemType.BluRaySummaryDetailLine:
                        sbDetail.AppendLine(item.Text);
                        break;

                    case EnumBluRayLineItemType.BluRaySummaryEmptyLine:
                        summaryInfo.HeaderText = sbHeader.ToString();
                        summaryInfo.DetailText = sbDetail.ToString();
                        _summaryList.Add(summaryInfo);
                        break;

                    case EnumBluRayLineItemType.BluRayError:
                        throw new Exception(item.Text);

                    default:
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat(Program.GetLogErrorFormat(), ex.Message, ex.StackTrace, MethodBase.GetCurrentMethod().Name);
                _errors.Add(new Error()
                {
                    Description = "There was an error trying to parse the blu-ray disc"
                });
            }

            return(_summaryList);
        }
        public void bluraysummarylineitemidentifierservice_can_identify_bluray_empty_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = ""
            };
            ILineItemIdentifierService service = new BluRaySummaryLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRaySummaryEmptyLine);
        }
        public void bluraysummarylineitemidentifierservice_can_identify_bluray_header_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "1) 00010.mpls, 3:04:31"
            };
            ILineItemIdentifierService service = new BluRaySummaryLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRaySummaryHeaderLine);
        }
        public void bluraysummarylineitemidentifierservice_can_identify_bluray_detail_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "- DTS Master Audio, Swedish, multi-channel, 48kHz"
            };
            ILineItemIdentifierService service = new BluRaySummaryLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRaySummaryDetailLine);
        }
        public void bluraytitlelineitemidentifierservice_can_identify_bluray_subtitle_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "4: Subtitle (pgs), French"
            };
            ILineItemIdentifierService service = new BluRayTitleLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRayTitleSubtitleLine);
        }
        public void bluraytitlelineitemidentifierservice_can_identify_bluray_audio_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "3: DTS Master Audio, French, 5.1 channels, 24 bits, 48kHz"
            };
            ILineItemIdentifierService service = new BluRayTitleLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRayTitleAudioLine);
        }
        public void bluraytitlelineitemidentifierservice_can_identify_bluray_video_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "2: h264/AVC, 1080i50 (16:9)"
            };
            ILineItemIdentifierService service = new BluRayTitleLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRayTitleVideoLine);
        }
        public void bluraytitlelineitemidentifierservice_can_identify_bluray_chapter_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "1: Chapters, 6 chapters"
            };
            ILineItemIdentifierService service = new BluRayTitleLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRayTitleChapterLine);
        }
        public void bluraytitlelineitemidentifierservice_can_identify_bluray_header_line_item_test()
        {
            ProcessOutputLineItem lineItem = new ProcessOutputLineItem()
            {
                Id = 1, Text = "M2TS, 1 video track, 1 audio track, 1 subtitle track, 0:58:28, 50i"
            };
            ILineItemIdentifierService service = new BluRayTitleLineItemIdentifierService();
            EnumBluRayLineItemType     type    = service.GetLineItemType(lineItem);

            type.Should().Be(EnumBluRayLineItemType.BluRayTitleHeaderLine);
        }