Beispiel #1
0
        public TestHelper()
        {
            var options = Options.Create(new LocalizationOptions());
            var factory = new ResourceManagerStringLocalizerFactory(options, NullLoggerFactory.Instance);

            Localizer          = new StringLocalizer <Localization>(factory);
            CuesheetController = new CuesheetController(Localizer);
        }
        public TestHelper()
        {
            var localizerService = new TextLocalizerService();

            Localizer          = new TextLocalizer <ValidationMessage>(localizerService);
            CuesheetController = new CuesheetController();
            ApplicationOptions = new ApplicationOptions
            {
                LinkTracksWithPreviousOne = false
            };
        }
Beispiel #3
0
        public static Cuesheet ImportCuesheet(CuesheetController cuesheetController, MemoryStream fileContent)
        {
            if (fileContent == null)
            {
                throw new ArgumentNullException(nameof(fileContent));
            }
            var cuesheet = new Cuesheet(cuesheetController);

            fileContent.Position = 0;
            using var reader     = new StreamReader(fileContent);
            var   regexCuesheetArtist = new Regex("^" + CuesheetArtist);
            var   regexCuesheetTitle  = new Regex("^" + CuesheetTitle);
            var   regexCuesheetFile   = new Regex("^" + CuesheetFileName);
            var   regexTrackBegin     = new Regex(CuesheetTrack + " [0-9]{1,} " + CuesheetTrackAudio);
            var   regexTrackArtist    = new Regex("(?<!^)" + TrackArtist);
            var   regexTrackTitle     = new Regex("(?<!^)" + TrackTitle);
            var   regexTrackIndex     = new Regex("(?<!^)" + TrackIndex01);
            Track track = null;

            while (reader.EndOfStream == false)
            {
                var line = reader.ReadLine();
                if (regexCuesheetArtist.IsMatch(line) == true)
                {
                    var artist = line.Substring(line.IndexOf("\"") + 1, line.LastIndexOf("\"") - (line.IndexOf("\"") + 1));
                    cuesheet.Artist = artist;
                }
                if (regexCuesheetTitle.IsMatch(line) == true)
                {
                    var title = line.Substring(line.IndexOf("\"") + 1, line.LastIndexOf("\"") - (line.IndexOf("\"") + 1));
                    cuesheet.Title = title;
                }
                if (regexCuesheetFile.IsMatch(line) == true)
                {
                    var audioFile = line.Substring(line.IndexOf("\"") + 1, line.LastIndexOf("\"") - (line.IndexOf("\"") + 1));
                    cuesheet.AudioFile = new AudioFile(audioFile);
                }
                if (regexTrackBegin.IsMatch(line) == true)
                {
                    track = new Track(cuesheetController);
                }
                if (regexTrackArtist.IsMatch(line) == true)
                {
                    var artist = line.Substring(line.IndexOf("\"") + 1, line.LastIndexOf("\"") - (line.IndexOf("\"") + 1));
                    track.Artist = artist;
                }
                if (regexTrackTitle.IsMatch(line) == true)
                {
                    var title = line.Substring(line.IndexOf("\"") + 1, line.LastIndexOf("\"") - (line.IndexOf("\"") + 1));
                    track.Title = title;
                }
                if (regexTrackIndex.IsMatch(line) == true)
                {
                    //TODO: Match frames also and import
                    var regExValue = new Regex("[0-9]{2}:[0-9]{2}");
                    var match      = regExValue.Match(line);
                    if (match.Success == true)
                    {
                        var minutes = int.Parse(match.Value.Substring(0, 2));
                        var seconds = int.Parse(match.Value.Substring(3, 2));
                        var begin   = new TimeSpan(0, minutes, seconds);
                        track.Begin = begin;
                    }
                    cuesheet.AddTrack(track);
                    track = null;
                }
            }
            return(cuesheet);
        }
Beispiel #4
0
 public Track(CuesheetController cuesheetController)
 {
     _cuesheetController = cuesheetController;
     Validate();
 }
 public Cuesheet(CuesheetController cuesheetController)
 {
     _cuesheetController = cuesheetController;
     tracks = new List <Track>();
     Validate();
 }