using System; using System.Linq; namespace MediaBrowser.Model.Session { /// /// Extension methods for serializing TranscodeReason. /// public static class TranscodeReasonExtensions { private static readonly TranscodeReason[] _values = Enum.GetValues(); /// /// Serializes a TranscodeReason into a delimiter-separated string. /// /// The enumeration. /// The string separator to use. defualt ,. /// string of transcode reasons delimited. public static string Serialize(this TranscodeReason reasons, string sep = ",") { return string.Join(sep, reasons.ToArray()); } /// /// Serializes a TranscodeReason into an array of individual TranscodeReason bits. /// /// The enumeration. /// Array of TranscodeReason. public static TranscodeReason[] ToArray(this TranscodeReason reasons) { return _values.Where(r => r != 0 && reasons.HasFlag(r)).ToArray(); } } }