/// <summary> /// Processes the passed <paramref name="arguments"/> by applying /// the mapping to all registered objects /// </summary> /// <param name="arguments"> /// The list of arguments passed via command line /// </param> /// <param name="options"> /// The <see cref="MapperOptions"/> passed to on of the mapping /// methods /// </param> private void ProcessArgumentList(IEnumerable <Argument> arguments, MapperOptions options) { var argsList = arguments.ToList(); foreach (var mapperData in this.mapperDatas) { foreach (var argument in argsList) { //Argument is already mapped to some object. We do not map the same arg twice if (argument.IsMapped) { continue; } MapCommandLineValueToSingleObject(argument, mapperData); if (mapperData.Errors.Any() && !options.ContinueOnError) { break; } } } this.UnmappedArguments = argsList.Where(a => !a.IsMapped); }
/// <inheritdoc /> public void Map(IEnumerable <string> args, MapperOptions options) { // ReSharper disable once PossibleMultipleEnumeration Guard.AgainstNullArgument(nameof(args), args); Guard.AgainstNullArgument(nameof(options), options); this.CreateMapperDataObjects(); // ReSharper disable once PossibleMultipleEnumeration this.ProcessArgumentList(args.ToArgument(options.OptionPrefix), options); }