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

IsAllEpisodeNumbersSet() public method

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

            foreach (BluRayDiscInfo disc in _bluRayDiscInfoList.Where(d => d.IsSelected))
            {
                foreach (BluRaySummaryInfo info in disc.BluRaySummaryInfoList.Where(s => s.IsSelected))
                {
                    if (info.EpisodeNumber == null)
                    {
                        isValid = false;
                    }
                }
            }

            if (!isValid)
            {
                if (!_eac3toConfiguration.IfIsExtractForRemuxIsItForAMovie)
                    this._errors.Add(new Error() { Description = "Episode number not set for all selected titles." });
                else
                    this._errors.Add(new Error() { Description = "Movie number not set for all selected titles." });
            }
            return isValid;
        }

Usage Example

 public void eac3tocommonrulesvalidatorservice_has_episode_number_not_set_for_all_titles_error_when_some_episodes_numbers_not_set_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() { Video = new BluRayTitleVideo() { IsSelected = true} }} } } };
     EAC3ToConfiguration config = new EAC3ToConfiguration();
     var directorySystemServiceMock = new Mock<IDirectorySystemService>();
     directorySystemServiceMock.Setup(m => m.Exists(It.IsAny<string>())).Returns(true);
     IEAC3ToCommonRulesValidatorService service = new EAC3ToCommonRulesValidatorService(config, directorySystemServiceMock.Object, discList);
     bool isValid = service.IsAllEpisodeNumbersSet();
     service.Errors[0].Description.Should().Be("Episode number not set for all selected titles.");
 }