LeaseStateExtensions
using System;
namespace Azure.Storage.Blobs.Models
{
    internal static class LeaseStateExtensions
    {
        public static string ToSerialString(this LeaseState value)
        {
            switch (value) {
            case LeaseState.Available:
                return "available";
            case LeaseState.Leased:
                return "leased";
            case LeaseState.Expired:
                return "expired";
            case LeaseState.Breaking:
                return "breaking";
            case LeaseState.Broken:
                return "broken";
            default:
                throw new ArgumentOutOfRangeException("value", value, "Unknown LeaseState value.");
            }
        }
        public static LeaseState ToLeaseState(this string value)
        {
            if (StringComparer.OrdinalIgnoreCase.Equals(value, "available"))
                return LeaseState.Available;
            if (StringComparer.OrdinalIgnoreCase.Equals(value, "leased"))
                return LeaseState.Leased;
            if (StringComparer.OrdinalIgnoreCase.Equals(value, "expired"))
                return LeaseState.Expired;
            if (StringComparer.OrdinalIgnoreCase.Equals(value, "breaking"))
                return LeaseState.Breaking;
            if (StringComparer.OrdinalIgnoreCase.Equals(value, "broken"))
                return LeaseState.Broken;
            throw new ArgumentOutOfRangeException("value", value, "Unknown LeaseState value.");
        }
    }
}