Example #1
0
        public CommandHandlerBuilder WithUsingLocalPin()
        {
            _prerequisites.Enqueue(() =>
            {
                var commandParams = _commandLineOptions.LoginWithLocalPin.ToList();
                if (commandParams.Count % 2 != 0)
                {
                    throw new ArgumentException(Resources.NewLocalPinInvalidCommandParamsCount);
                }

                _runtimeTokenParams.LocalUserPins = new Dictionary <uint, string>();

                for (var i = 0; i < commandParams.Count; i += 2)
                {
                    var localPinParams = commandParams.Skip(i).Take(2).ToList();

                    if (!_volumeOwnersStore.TryGetOwnerId(localPinParams[0], out var localId))
                    {
                        throw new ArgumentException(Resources.NewLocalPinInvalidOwnerId);
                    }

                    _runtimeTokenParams.LocalUserPins.Add(localId, localPinParams[1]);
                }
            });

            return(this);
        }
Example #2
0
        public void ValidateNewLocalPinParams()
        {
            var commandParams = _commandLineOptions.SetLocalPin.ToList();

            if (commandParams.Count != DefaultValues.NewLocalPinCommandParamsCount)
            {
                throw new ArgumentException(Resources.NewLocalPinInvalidCommandParamsCount);
            }

            if (!_volumeOwnersStore.TryGetOwnerId(commandParams[0], out var localIdToCreate))
            {
                throw new ArgumentException(Resources.NewLocalPinInvalidOwnerId);
            }

            _runtimeTokenParams.NewLocalPin     = commandParams[1];
            _runtimeTokenParams.LocalIdToCreate = localIdToCreate;
        }
        public static IEnumerable <VolumeInfo> Create(
            VolumeOwnersStore volumeOwnersStore,
            VolumeAttributesStore volumeAttributesStore,
            IEnumerable <string> formatParams)
        {
            var formatParamsList = formatParams.ToList();

            if (formatParamsList.Count % _volumeParamsCount != 0)
            {
                throw new ArgumentException(Resources.FormatDriveInvalidCommandParamsCount);
            }

            for (var i = 0; i < formatParamsList.Count; i += _volumeParamsCount)
            {
                var volumeParams = formatParamsList.Skip(i).Take(_volumeParamsCount).ToList();

                if (!(uint.TryParse(volumeParams[0], out var volumeId)))
                {
                    throw new ArgumentException(Resources.VolumeInfoInvalidVolumeId);
                }

                if (!(uint.TryParse(volumeParams[1], out var volumeSize)))
                {
                    throw new ArgumentException(Resources.FormatDriveInvalidVolumeSize);
                }

                if (!volumeOwnersStore.TryGetOwnerId(volumeParams[2], out var owner))
                {
                    throw new ArgumentException(Resources.NewLocalPinInvalidOwnerId);
                }

                if (!volumeAttributesStore.TryGetAccessMode(volumeParams[3], out var accessMode))
                {
                    throw new ArgumentException(Resources.FormatDriveInvalidAccessMode);
                }

                yield return(new VolumeInfo
                {
                    Id = volumeId,
                    Size = volumeSize,
                    AccessMode = accessMode,
                    Owner = owner
                });
            }
        }