using System; using System.Linq; using System.Text; namespace Sony.ChartBot.Helpers { public class TrackReferenceGenerator { public string BuildTrackReference(string artistName, string trackName, string countryCode) { var bytes =Encoding.UTF8.GetBytes($"{artistName}|{trackName}|{countryCode}"); return Convert.ToBase64String(bytes); } public bool TryParseTrackReference(string reference, out string artistName, out string trackName, out string countryCode) { var bytes = Convert.FromBase64String(reference); var decoded = Encoding.UTF8.GetString(bytes); var parts = decoded.Split('|'); if (parts.Length != 3) { artistName = null; trackName = null; countryCode = null; return false; } artistName = parts.First(); trackName = parts.ElementAt(1); countryCode = parts.Last(); return true; } } }