private void CheckForUnmappedArguments(IDictionary <string, CommandLineArgument> arguments, HashSet <CommandLineArgument> sharedArguments, T instance) { if (arguments.Count <= 0) { return; } foreach (var argument in arguments.Values.Where(arg => !sharedArguments.Contains(arg))) { UnmappedCommandLineArgument?.Invoke(this, new MapperEventArgs(argument, null, instance)); } }
/// <summary>Maps the give argument dictionary to the given instance.</summary> /// <param name="arguments">The arguments to map.</param> /// <param name="instance">The instance to map the arguments to.</param> /// <returns>The instance of the class, the command line argument were mapped to</returns> public T Map(IDictionary <string, CommandLineArgument> arguments, T instance) { var argumentInfo = ArgumentClassInfo.FromType <T>(); var helpRequest = GetHelpRequest(arguments, argumentInfo); if (helpRequest != null) { MapHelpOnly(instance, argumentInfo, arguments, helpRequest); return(instance); } if (argumentInfo.HasCommands) { MapArgumentsToCommand(instance, argumentInfo, arguments); } foreach (var argument in arguments.Values.Where(x => !x.Mapped)) { UnmappedCommandLineArgument?.Invoke(this, new MapperEventArgs(argument, null, instance)); } return(instance); }