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); }
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 }); } }