BatchGuy.App.Shared.Services.EAC3ToCommonRulesValidatorService.WhenSummarySelectedAtLeastOneStreamSelected C# (CSharp) Метод

WhenSummarySelectedAtLeastOneStreamSelected() публичный Метод

public WhenSummarySelectedAtLeastOneStreamSelected ( ) : bool
Результат bool
        public bool WhenSummarySelectedAtLeastOneStreamSelected()
        {
            bool isValid = false;

            foreach (BluRayDiscInfo disc in _bluRayDiscInfoList.Where(d => d.IsSelected))
            {
                foreach (BluRaySummaryInfo summary in disc.BluRaySummaryInfoList.Where(s => s.IsSelected))
                {
                    if (summary.BluRayTitleInfo != null && summary.BluRayTitleInfo.Video.IsSelected)
                    {
                        isValid = true;
                    }
                    if (summary.BluRayTitleInfo != null && summary.BluRayTitleInfo.AudioList != null && summary.BluRayTitleInfo.AudioList.Where(a => a.IsSelected).Count() > 0)
                    {
                        isValid = true;
                    }
                    if (summary.BluRayTitleInfo != null && summary.BluRayTitleInfo.Subtitles != null && summary.BluRayTitleInfo.Subtitles.Where(s => s.IsSelected).Count() > 0)
                    {
                        isValid = true;
                    }
                    if (summary.BluRayTitleInfo != null && summary.BluRayTitleInfo.Chapter != null && summary.BluRayTitleInfo.Chapter.IsSelected)
                    {
                        isValid = true;
                    }
                    if (!isValid)
                    {
                        this._errors.Add(new Error() { Description = "Some selected titles have no streams selected." });
                        return isValid;
                    }
                    isValid = false;
                }

            }
            return true;
        }

Usage Example

 public void eac3tocommonrulesvalidatorservice_when_summary_selected_at_least_one_stream_selected_test()
 {
     List<BluRayDiscInfo> discList = new List<BluRayDiscInfo>() { new BluRayDiscInfo() { Id = 1, IsSelected = true,BluRayPath = @"c:\temp\disc1",
         BluRaySummaryInfoList = new List<BluRaySummaryInfo>() { new BluRaySummaryInfo() { IsSelected = true,
      BluRayTitleInfo = new BluRayTitleInfo() { EpisodeNumber = "1", Video = new BluRayTitleVideo() { IsSelected = false} }} } } };
     EAC3ToConfiguration config = new EAC3ToConfiguration();
     var directorySystemServiceMock = new Mock<IDirectorySystemService>();
     directorySystemServiceMock.Setup(m => m.Exists(It.IsAny<string>())).Returns(false);
     IEAC3ToCommonRulesValidatorService service = new EAC3ToCommonRulesValidatorService(config, directorySystemServiceMock.Object, discList);
     bool isValid = service.WhenSummarySelectedAtLeastOneStreamSelected();
     service.Errors[0].Description.Should().Be("Some selected titles have no streams selected.");
 }