Microsoft.Azure.Commands.DataLakeStore.Models.DataLakeStoreItemAce.Parse C# (CSharp) Method

Parse() public static method

public static Parse ( string aceString ) : DataLakeStoreItemAce
aceString string
return DataLakeStoreItemAce
        public static DataLakeStoreItemAce Parse(string aceString)
        {
            var aceList = aceString.Split(',');
            if(aceList.Length != 1)
            {
                throw new InvalidOperationException(string.Format(Resources.InvalidAce, aceString));
            }

            var scope = DataLakeStoreEnums.ScopeType.Access;
            var typeIndex = 0;
            var singleSpec = aceString.Split(':');
            if (singleSpec.Length == 4 && singleSpec[0].ToLowerInvariant().Equals("default"))
            {
                scope = DataLakeStoreEnums.ScopeType.Default;
                typeIndex = 1;
            }
            else if (singleSpec.Length != 3)
            {
                throw new InvalidOperationException(string.Format(Resources.InvalidAce, aceString));
            }

            switch (singleSpec[typeIndex].ToLowerInvariant())
            {
                case "group":
                    if (!string.IsNullOrEmpty(singleSpec[typeIndex + 1]))
                    {
                        // default group and regular group case
                        return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.Group, singleSpec[typeIndex + 1], singleSpec[typeIndex + 2]);
                    }
                    else if (string.IsNullOrEmpty(singleSpec[typeIndex + 1]))
                    {
                        // default owning group and regular owning group case
                        return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.Group, string.Empty, singleSpec[typeIndex + 2]);
                    }

                    throw new InvalidOperationException(string.Format(Resources.InvalidAce, aceString));
                case "user":
                    if (!string.IsNullOrEmpty(singleSpec[typeIndex + 1]))
                    {
                        // default user and regular user case
                        return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.User, singleSpec[typeIndex + 1], singleSpec[typeIndex + 2]);
                    }
                    else if (string.IsNullOrEmpty(singleSpec[typeIndex + 1]))
                    {
                        // default owner and owner case
                        return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.User, string.Empty, singleSpec[typeIndex + 2]);
                    }

                    throw new InvalidOperationException(string.Format(Resources.InvalidAce, aceString));
                case "mask":
                    return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.Mask, string.Empty, singleSpec[typeIndex + 2]);
                case "other":
                    return new DataLakeStoreItemAce(scope, DataLakeStoreEnums.AceType.Other, string.Empty, singleSpec[typeIndex + 2]);
                default:
                    throw new CloudException(string.Format(Resources.InvalidParseAce, aceString));
            }
        }