public SimpleConfiguration Parse(IEnumerable <string> args) { var configuration = new SimpleConfiguration(); Parser.Default.ParseArguments <ParseTemplate>(args) .WithParsed(parsed => { configuration.PathToWordsFile = parsed.PathToWordsFile; configuration.BoringWordsFileName = parsed.BoringWordsFileName; configuration.DirectoryToSave = parsed.DirectoryToSave; configuration.OutFileName = parsed.OutFileName; configuration.FontFamily = CommandLineArgumentConverter.ConvertToFontFamily(parsed.FontFamily); configuration.Color = CommandLineArgumentConverter.ConvertToColor(parsed.Color); configuration.MinFontSize = parsed.MinFontSize; configuration.MaxFontSize = parsed.MaxFontSize; configuration.ImageWidth = parsed.ImageWidth; configuration.ImageHeight = parsed.ImageHeight; configuration.ImageFormat = CommandLineArgumentConverter.ConvertToImageFormat(parsed.ImageFormat); configuration.RotationAngle = parsed.RotationAngle; configuration.CenterX = parsed.CenterX; configuration.CenterY = parsed.CenterY; }); return(configuration); }
public Result <SimpleConfiguration> Parse(IEnumerable <string> args) { var configuration = new SimpleConfiguration().AsResult(); var parser = Parser.Default.ParseArguments <ParseTemplate>(args); configuration = configuration.ThenAction( config => parser.WithParsed(parsed => config.PathToWordsFile = parsed.PathToWordsFile)) .ThenAction( config => parser.WithParsed(parsed => config.BoringWordsFileName = parsed.BoringWordsFileName)) .ThenAction( config => parser.WithParsed(parsed => config.DirectoryToSave = parsed.DirectoryToSave)) .ThenAction( config => parser.WithParsed(parsed => config.OutFileName = parsed.OutFileName)) .ThenAction( config => parser.WithParsed(parsed => config.FontFamily = CommandLineArgumentConverter.ConvertToFontFamily(parsed.FontFamily)), "Font with this name was not found in the system") .ThenAction( config => parser.WithParsed(parsed => config.Color = CommandLineArgumentConverter.ConvertToColor(parsed.Color)), "This color is not found in the system") .ThenAction( config => parser.WithParsed(parsed => config.MinFontSize = parsed.MinFontSize)) .ThenAction( config => parser.WithParsed(parsed => config.MaxFontSize = parsed.MaxFontSize)) .ThenAction( config => parser.WithParsed(parsed => config.ImageWidth = parsed.ImageWidth)) .ThenAction( config => parser.WithParsed(parsed => config.ImageHeight = parsed.ImageHeight)) .ThenAction( config => parser.WithParsed(parsed => config.ImageFormat = CommandLineArgumentConverter.ConvertToImageFormat(parsed.ImageFormat)), "This image format is not found in the system") .ThenAction( config => parser.WithParsed(parsed => config.RotationAngle = parsed.RotationAngle)) .ThenAction( config => parser.WithParsed(parsed => config.CenterX = parsed.CenterX)) .ThenAction( config => parser.WithParsed(parsed => config.CenterY = parsed.CenterY)); return(configuration); }