Exemple #1
0
 protected override void Validate()
 {
     if (String.IsNullOrEmpty(Artist) == true)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Artist)), ValidationErrorType.Warning, "{0} has no value!", nameof(Artist)));
     }
     if (String.IsNullOrEmpty(Title) == true)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Title)), ValidationErrorType.Warning, "{0} has no value!", nameof(Title)));
     }
     if (Audiofile == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Audiofile)), ValidationErrorType.Error, "{0} has no value!", nameof(Audiofile)));
     }
     if (tracks.Count < 1)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Tracks)), ValidationErrorType.Error, "{0} has invalid Count ({1})!", nameof(Tracks), 0));
     }
     if (CDTextfile == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(CDTextfile)), ValidationErrorType.Warning, "{0} has no value!", nameof(CDTextfile)));
     }
     if (Cataloguenumber == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Cataloguenumber)), ValidationErrorType.Warning, "{0} has no value!", nameof(Cataloguenumber)));
     }
     else
     {
         _ = Cataloguenumber.IsValid;
         validationErrors.AddRange(Cataloguenumber.ValidationErrors);
     }
 }
Exemple #2
0
 protected override void Validate()
 {
     if (String.IsNullOrEmpty(TestProperty))
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(TestProperty)), ValidationErrorType.Warning, "Testmessage"));
     }
 }
        public void CreateTest()
        {
            var testObject     = new FieldReferenceTestClass();
            var fieldReference = FieldReference.Create(testObject, nameof(FieldReferenceTestClass.Property1));

            Assert.AreEqual(fieldReference.DisplayName, "FieldReferenceTestClass.Property1");
            fieldReference = FieldReference.Create(testObject, nameof(FieldReferenceTestClass.Property2));
            Assert.AreEqual(fieldReference.DisplayName, "FieldReferenceTestClass.Property2");
        }
 protected override void Validate()
 {
     if (String.IsNullOrEmpty(SchemeCuesheet))
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(SchemeCuesheet)), ValidationErrorType.Warning, "{0} has no value!", nameof(SchemeCuesheet)));
     }
     else
     {
         if (AvailableSchemesTrack != null)
         {
             Boolean addValidationError = false;
             foreach (var availableScheme in AvailableSchemesTrack)
             {
                 if (SchemeCuesheet.Contains(availableScheme.Value) == true)
                 {
                     addValidationError = true;
                     break;
                 }
             }
             if (addValidationError == true)
             {
                 validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(SchemeCuesheet)), ValidationErrorType.Warning, "Scheme contains placeholders that can not be solved!"));
             }
         }
     }
     if (String.IsNullOrEmpty(SchemeTracks))
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(SchemeTracks)), ValidationErrorType.Warning, "{0} has no value!", nameof(SchemeTracks)));
     }
     else
     {
         if (AvailableSchemeCuesheet != null)
         {
             Boolean addValidationError = false;
             foreach (var availableScheme in AvailableSchemeCuesheet)
             {
                 if (SchemeTracks.Contains(availableScheme.Value) == true)
                 {
                     addValidationError = true;
                     break;
                 }
             }
             if (addValidationError == true)
             {
                 validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(SchemeTracks)), ValidationErrorType.Warning, "Scheme contains placeholders that can not be solved!"));
             }
         }
     }
 }
        public void GetFieldIdentifierTest()
        {
            var testHelper         = new TestHelper();
            var cuesheetController = testHelper.CuesheetController;
            var cuesheet           = new Cuesheet();

            Assert.IsNotNull(cuesheet);
            var identifier = cuesheetController.GetFieldIdentifier(cuesheet, nameof(Cuesheet.Artist));

            Assert.IsTrue(identifier.StartsWith(String.Format("{0}.{1}", nameof(Cuesheet), nameof(Cuesheet.Artist))));
            Assert.AreEqual(cuesheetController.GetFieldIdentifier(cuesheet, nameof(Cuesheet.Artist)), identifier);
            var fieldReference = FieldReference.Create(cuesheet, nameof(Cuesheet.Artist));

            Assert.AreEqual(cuesheetController.GetFieldIdentifier(fieldReference), identifier);
        }
Exemple #6
0
        public String GetFieldIdentifier(IValidateable validateable, String property)
        {
            if (validateable == null)
            {
                throw new ArgumentNullException(nameof(validateable));
            }
            var identifier = fieldIdentifier.FirstOrDefault(x => x.Key.Owner == validateable && x.Key.Property == property);

            if (identifier.Key == null)
            {
                fieldIdentifier.Add(FieldReference.Create(validateable, property), Guid.NewGuid());
                identifier = fieldIdentifier.FirstOrDefault(x => x.Key.Owner == validateable && x.Key.Property == property);
            }
            return(String.Format("{0}_{1}", identifier.Key.DisplayName, identifier.Value.ToString()));
        }
 protected override void Validate()
 {
     if (String.IsNullOrEmpty(Value))
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Value)), ValidationErrorType.Warning, "{0} has no value!", nameof(Cataloguenumber)));
     }
     else
     {
         if (Value.All(Char.IsDigit) == false)
         {
             validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Value)), ValidationErrorType.Error, "{0} does not only contain numbers.", nameof(Cataloguenumber)));
         }
         if (Value.Length != 13)
         {
             validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Value)), ValidationErrorType.Error, "{0} has invalid length ({1})!", nameof(Cataloguenumber), 13));
         }
     }
 }
        protected override void Validate()
        {
            if (String.IsNullOrEmpty(Scheme) == false)
            {
                Boolean addValidationError = false;
                switch (SchemeType)
                {
                case Schemetype.Header:
                case Schemetype.Footer:
                    foreach (var availableScheme in AvailableTrackSchemes)
                    {
                        if (Scheme.Contains(availableScheme.Value) == true)
                        {
                            addValidationError = true;
                            break;
                        }
                    }
                    if (addValidationError == true)
                    {
                        validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Scheme)), ValidationErrorType.Warning, "Scheme contains placeholders that can not be solved!"));
                    }
                    break;

                case Schemetype.Body:
                    foreach (var availableScheme in AvailableCuesheetSchemes)
                    {
                        if (Scheme.Contains(availableScheme.Value) == true)
                        {
                            addValidationError = true;
                            break;
                        }
                    }
                    if (addValidationError == true)
                    {
                        validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Scheme)), ValidationErrorType.Warning, "Scheme contains placeholders that can not be solved!"));
                    }
                    break;

                case Schemetype.Unknown:
                    validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(SchemeType)), ValidationErrorType.Error, "{0} has invalid value!", nameof(SchemeType)));
                    break;
                }
            }
        }
Exemple #9
0
        protected override void Validate()
        {
            if (String.IsNullOrEmpty(Scheme) == false)
            {
                Boolean addValidationError = false;
                switch (SchemeType)
                {
                case SchemeType.Header:
                case SchemeType.Footer:
                    foreach (var availableScheme in AvailableTrackSchemes)
                    {
                        if (Scheme.Contains(availableScheme.Value) == true)
                        {
                            addValidationError = true;
                            break;
                        }
                    }
                    if (addValidationError == true)
                    {
                        validationErrors.Add(new ValidationError(localizer["SchemeContainsPlaceholdersThatCanNotBeSolved"], FieldReference.Create(this, nameof(Scheme)), ValidationErrorType.Warning));
                    }
                    break;

                case SchemeType.Body:
                    foreach (var availableScheme in AvailableCuesheetSchemes)
                    {
                        if (Scheme.Contains(availableScheme.Value) == true)
                        {
                            addValidationError = true;
                            break;
                        }
                    }
                    if (addValidationError == true)
                    {
                        validationErrors.Add(new ValidationError(localizer["SchemeContainsPlaceholdersThatCanNotBeSolved"], FieldReference.Create(this, nameof(Scheme)), ValidationErrorType.Warning));
                    }
                    break;
                }
            }
        }
Exemple #10
0
 protected override void Validate()
 {
     if (Position == null)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Position")), FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error));
     }
     if ((Position != null) && (Position == 0))
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasInvalidValue"), _cuesheetController.GetLocalizedString("Position")), FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error));
     }
     if (String.IsNullOrEmpty(Artist) == true)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Artist")), FieldReference.Create(this, nameof(Artist)), ValidationErrorType.Warning));
     }
     if (String.IsNullOrEmpty(Title) == true)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Title")), FieldReference.Create(this, nameof(Title)), ValidationErrorType.Warning));
     }
     if (Begin == null)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Begin")), FieldReference.Create(this, nameof(Begin)), ValidationErrorType.Error));
     }
     else
     {
         if (Begin < TimeSpan.Zero)
         {
             validationErrors.Add(new ValidationError(_cuesheetController.GetLocalizedString("HasInvalidBegin"), FieldReference.Create(this, nameof(Begin)), ValidationErrorType.Error));
         }
     }
     if (End == null)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("End")), FieldReference.Create(this, nameof(End)), ValidationErrorType.Error));
     }
     else
     {
         if (End < TimeSpan.Zero)
         {
             validationErrors.Add(new ValidationError(_cuesheetController.GetLocalizedString("HasInvalidEnd"), FieldReference.Create(this, nameof(End)), ValidationErrorType.Error));
         }
     }
     if (Length == null)
     {
         validationErrors.Add(new ValidationError(_cuesheetController.GetLocalizedString("LengthHasNoValue"), FieldReference.Create(this, nameof(Length)), ValidationErrorType.Error));
     }
 }
Exemple #11
0
 protected override void Validate()
 {
     if (Position == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error, "{0} has no value!", nameof(Position)));
     }
     if ((Position != null) && (Position == 0))
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error, "{0} has invalid value!", nameof(Position)));
     }
     if (String.IsNullOrEmpty(Artist) == true)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Artist)), ValidationErrorType.Warning, "{0} has no value!", nameof(Artist)));
     }
     if (String.IsNullOrEmpty(Title) == true)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Title)), ValidationErrorType.Warning, "{0} has no value!", nameof(Title)));
     }
     if (Begin == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Begin)), ValidationErrorType.Error, "{0} has no value!", nameof(Begin)));
     }
     else
     {
         if (Begin < TimeSpan.Zero)
         {
             validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Begin)), ValidationErrorType.Error, "{0} has invalid timespan!", nameof(Begin)));
         }
     }
     if (End == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(End)), ValidationErrorType.Error, "{0} has no value!", nameof(End)));
     }
     else
     {
         if (End < TimeSpan.Zero)
         {
             validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(End)), ValidationErrorType.Error, "{0} has invalid timespan!", nameof(End)));
         }
     }
     if (Length == null)
     {
         validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Length)), ValidationErrorType.Error, "{0} has no value! Please check {1} and {2}.", nameof(Length), nameof(Begin), nameof(End)));
     }
     //Check track overlapping
     if (Cuesheet != null)
     {
         if (Position.HasValue)
         {
             IEnumerable <Track> tracksWithSamePosition;
             if (ClonedFrom != null)
             {
                 tracksWithSamePosition = Cuesheet.Tracks.Where(x => x.Position == Position && x.Equals(this) == false && (x.Equals(ClonedFrom) == false));
             }
             else
             {
                 tracksWithSamePosition = Cuesheet.Tracks.Where(x => x.Position == Position && x.Equals(this) == false);
             }
             if ((tracksWithSamePosition != null) && (tracksWithSamePosition.Any()))
             {
                 foreach (var track in tracksWithSamePosition)
                 {
                     track.RankPropertyValueChanged += Track_RankPropertyValueChanged;
                 }
                 validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error, "{0} {1} of this track is already in use by track(s) {2}!", nameof(Position), Position, String.Join(", ", tracksWithSamePosition)));
             }
             if (IsCloned == false)
             {
                 Track trackAtPosition = Cuesheet.Tracks.ElementAtOrDefault((int)Position.Value - 1);
                 if ((trackAtPosition == null) || (trackAtPosition != this))
                 {
                     validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Position)), ValidationErrorType.Error, "{0} {1} of this track does not match track position in cuesheet. Please correct the {2} of this track to {3}!", nameof(Position), Position, nameof(Position), Cuesheet.Tracks.ToList().IndexOf(this) + 1));
                 }
             }
         }
         if (Begin.HasValue)
         {
             IEnumerable <Track> tracksOverlapping;
             if (ClonedFrom != null)
             {
                 tracksOverlapping = Cuesheet.Tracks.Where(x => Begin >= x.Begin && Begin < x.End && (x.Equals(this) == false) && (x.Equals(ClonedFrom) == false));
             }
             else
             {
                 tracksOverlapping = Cuesheet.Tracks.Where(x => Begin >= x.Begin && Begin < x.End && (x.Equals(this) == false));
             }
             if ((tracksOverlapping != null) && tracksOverlapping.Any())
             {
                 foreach (var track in tracksOverlapping)
                 {
                     track.RankPropertyValueChanged += Track_RankPropertyValueChanged;
                 }
                 validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(Begin)), ValidationErrorType.Warning, "{0} is overlapping with other track(s) ({1})!", nameof(Begin), String.Join(", ", tracksOverlapping)));
             }
         }
         if (End.HasValue)
         {
             IEnumerable <Track> tracksOverlapping;
             if (ClonedFrom != null)
             {
                 tracksOverlapping = Cuesheet.Tracks.Where(x => x.Begin < End && End <= x.End && (x.Equals(this) == false) && (x.Equals(ClonedFrom) == false));
             }
             else
             {
                 tracksOverlapping = Cuesheet.Tracks.Where(x => x.Begin < End && End <= x.End && (x.Equals(this) == false));
             }
             if ((tracksOverlapping != null) && tracksOverlapping.Any())
             {
                 foreach (var track in tracksOverlapping)
                 {
                     track.RankPropertyValueChanged += Track_RankPropertyValueChanged;
                 }
                 validationErrors.Add(new ValidationError(FieldReference.Create(this, nameof(End)), ValidationErrorType.Warning, "{0} is overlapping with other track(s) ({1})!", nameof(End), String.Join(", ", tracksOverlapping)));
             }
         }
     }
 }
 protected override void Validate()
 {
     if (String.IsNullOrEmpty(Artist) == true)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Artist")), FieldReference.Create(this, nameof(Artist)), ValidationErrorType.Warning));
     }
     if (String.IsNullOrEmpty(Title) == true)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Title")), FieldReference.Create(this, nameof(Title)), ValidationErrorType.Warning));
     }
     if (AudioFile == null)
     {
         validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("HasNoValue"), _cuesheetController.GetLocalizedString("Audiofile")), FieldReference.Create(this, nameof(AudioFile)), ValidationErrorType.Error));
     }
     //Check track overlapping
     lock (syncLock)
     {
         TimeSpan begin = TimeSpan.Zero;
         foreach (var track in Tracks)
         {
             if ((track.Begin == null) || (track.Begin != begin))
             {
                 validationErrors.Add(new ValidationError(String.Format(_cuesheetController.GetLocalizedString("TrackHasInvalidValue"), track.Position, _cuesheetController.GetLocalizedString("Begin"), track.Begin), FieldReference.Create(track, nameof(Track.Begin)), ValidationErrorType.Warning));
             }
             if (track.End != null)
             {
                 begin = track.End.Value;
             }
         }
     }
 }