<commit_before>﻿using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using PlaylistManager.Domain.Annotations;
using TagLib;
using TagLib.Riff;

namespace PlaylistManager.Domain
{
	/// <summary>
	///     Model that holds all song properties
	///     (same datatypes as defined in the TagLib library)
	/// </summary>
	public class Song : INotifyPropertyChanged
	{
		private bool _isPlaying;
		
		public bool IsPlaying
		{
			get => _isPlaying;
			set
			{
				if (value.Equals(_isPlaying)) return;
				_isPlaying = value;
				OnPropertyChanged();
			}
		}

		public uint Id { get; set; }
		public string Title { get; set; }
		public string Album { get; set; }
		public TimeSpan Duration { get; set; }
		public string Path { get; set; }
		public string[] Genres { get; set; }
		public string Artist { get; set; }
		public uint? Year { get; set; }
		public uint? TrackNumber { get; set; }
		public IPicture AlbumArt { get; set; }

		public override string ToString()
		{
			return Artist + " - " + Title + " (" + Duration.ToString("hh\\:mm\\:ss") + ")";
		}

		public event PropertyChangedEventHandler PropertyChanged;

		[NotifyPropertyChangedInvocator]<commit_msg>Improved ToString()<commit_after>﻿using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using PlaylistManager.Domain.Annotations;
using TagLib;
using TagLib.Riff;

namespace PlaylistManager.Domain
{
	/// <summary>
	///     Model that holds all song properties
	///     (same datatypes as defined in the TagLib library)
	/// </summary>
	public class Song : INotifyPropertyChanged
	{
		private bool _isPlaying;
		
		public bool IsPlaying
		{
			get => _isPlaying;
			set
			{
				if (value.Equals(_isPlaying)) return;
				_isPlaying = value;
				OnPropertyChanged();
			}
		}

		public uint Id { get; set; }
		public string Title { get; set; }
		public string Album { get; set; }
		public TimeSpan Duration { get; set; }
		public string Path { get; set; }
		public string[] Genres { get; set; }
		public string Artist { get; set; }
		public uint? Year { get; set; }
		public uint? TrackNumber { get; set; }
		public IPicture AlbumArt { get; set; }

		public override string ToString()
		{
			return $"{Id}) - {Artist} - {Title} ({Duration:hh\\:mm\\:ss})";
		}

		public event PropertyChangedEventHandler PropertyChanged;

		[NotifyPropertyChangedInvocator]
{'fraction_non_alphanumeric': 0.11373209772535804, 'fraction_numerical': 0.0, 'mean_word_length': 3.4309701492537314, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6868708', 'n_tokens_mistral': 824, 'n_tokens_neox': 727, 'n_words': 225}