protected string formatBeforeWriting(byte frameType, TagData tag, IDictionary <byte, string> map) { string value = ""; string total = ""; switch (frameType) { case TagData.TAG_FIELD_RATING: return(TrackUtils.EncodePopularity(map[frameType], ratingConvention).ToString()); case TagData.TAG_FIELD_TRACK_NUMBER: value = map[TagData.TAG_FIELD_TRACK_NUMBER]; map.TryGetValue(TagData.TAG_FIELD_TRACK_TOTAL, out total); return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); case TagData.TAG_FIELD_TRACK_TOTAL: value = map[TagData.TAG_FIELD_TRACK_TOTAL]; total = value; return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); case TagData.TAG_FIELD_TRACK_NUMBER_TOTAL: value = map[TagData.TAG_FIELD_TRACK_NUMBER_TOTAL]; total = value; return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); case TagData.TAG_FIELD_DISC_NUMBER: value = map[TagData.TAG_FIELD_DISC_NUMBER]; map.TryGetValue(TagData.TAG_FIELD_DISC_TOTAL, out total); return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); case TagData.TAG_FIELD_DISC_TOTAL: value = map[TagData.TAG_FIELD_DISC_TOTAL]; total = value; return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); case TagData.TAG_FIELD_DISC_NUMBER_TOTAL: value = map[TagData.TAG_FIELD_DISC_NUMBER_TOTAL]; total = value; return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat)); default: return(map[frameType]); } }
public void TrackUtils_ApplyLeadingZeroes() { // Use existing track format Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "", 1, false, false)); Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 1, false, false)); Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 1, true, false)); Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, true, false)); Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, false, false)); Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/1", "1", 2, false, false)); Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("01/1", "1", 2, false, false)); // Override existing track format Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 2, false, true)); Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "1", 2, false, true)); Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, true, true)); Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "10", 2, true, true)); Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 0, true, true)); Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/1", "1", 0, true, true)); Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/01", "1", 0, true, true)); Assert.AreEqual("001", TrackUtils.ApplyLeadingZeroes("1", "100", 0, true, true)); }