BatchGuy.App.Shared.Services.EAC3ToCommonRulesValidatorService.IsAllBluRayPathsValid C# (CSharp) Method

IsAllBluRayPathsValid() public method

public IsAllBluRayPathsValid ( ) : bool
return bool
        public bool IsAllBluRayPathsValid()
        {
            bool isValid = true;

            foreach (BluRayDiscInfo disc in _bluRayDiscInfoList.Where(d => d.IsSelected))
            {
                foreach (BluRaySummaryInfo info in disc.BluRaySummaryInfoList.Where(s => s.IsSelected))
                {
                    if (info.BluRayTitleInfo != null)
                    {
                        if ((info.BluRayTitleInfo.AudioList != null && info.BluRayTitleInfo.AudioList.Where(a => a.IsSelected).Count() > 0) || (info.BluRayTitleInfo.Chapter != null && info.BluRayTitleInfo.Chapter.IsSelected)
                            || (info.BluRayTitleInfo.Subtitles != null && info.BluRayTitleInfo.Subtitles.Where(s => s.IsSelected).Count() > 0) || (info.BluRayTitleInfo.Video != null && info.BluRayTitleInfo.Video.IsSelected))
                        {
                            if (!_directorySystemService.Exists(disc.BluRayPath))
                                isValid = false;
                        }
                    }
                }
            }

            if (!isValid)
            {
                this._errors.Add(new Error() { Description = "Invalid Blu-ray disc directories found." });
            }
            return isValid;
        }

Usage Example

 public void eac3tocommonrulesvalidatorservice_has_invalid_bluray_directory_error_when_some_bluray_disc_directories_dont_exist_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 = true} }} } } };
     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.IsAllBluRayPathsValid();
     service.Errors[0].Description.Should().Be("Invalid Blu-ray disc directories found.");
 }