using System; using System.Collections.Generic; using System.Globalization; using System.Linq; namespace SpotifyAPI.Web { public static class Util { public static string GetStringAttribute(this T en, string separator) where T : struct, IConvertible { Enum e = (Enum)(object)en; IEnumerable attributes = Enum.GetValues(typeof(T)) .Cast() .Where(v => e.HasFlag((Enum)(object)v)) .Select(v => typeof(T).GetField(v.ToString(CultureInfo.InvariantCulture))) .Select(f => f.GetCustomAttributes(typeof(StringAttribute), false)[0]) .Cast(); List list = new List(); attributes.ToList().ForEach(element => list.Add(element.Text)); return string.Join(separator, list); } public static int ToUnixTimeMillisecondsPoly(this DateTime time) { return (int)time.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds; } } public sealed class StringAttribute : Attribute { public string Text { get; set; } public StringAttribute(string text) { Text = text; } } }