Switched Generation command to use lambda handler.
This commit is contained in:
		@@ -7,37 +7,34 @@ using System.Resources.NetStandard;
 | 
			
		||||
 | 
			
		||||
namespace DotNetResxUtils.Commands
 | 
			
		||||
{
 | 
			
		||||
    internal class GenerationCommand  : Command
 | 
			
		||||
    internal class GenerationCommand : Command
 | 
			
		||||
    {
 | 
			
		||||
        const string NAME = "generate";
 | 
			
		||||
        const string DESC = "Generate a .resx file.";
 | 
			
		||||
 | 
			
		||||
        public GenerationCommand() : base(NAME, DESC)
 | 
			
		||||
        {
 | 
			
		||||
            Argument<FileInfo> destArg = new Argument<FileInfo>("destination", "The destination path to store this file. If no extension is given, .resx will automatically be concatenated.");
 | 
			
		||||
            Add(destArg);
 | 
			
		||||
 | 
			
		||||
            Option<FileInfo?> fromOpt = new Option<FileInfo?>("--from", "Generates a .resx file from the given file.");
 | 
			
		||||
            Add(fromOpt);
 | 
			
		||||
 | 
			
		||||
            Argument<FileInfo> destArg = new Argument<FileInfo>("destination", "The destination path to store this file. If no extension is given, .resx will automatically be concatenated.");
 | 
			
		||||
 | 
			
		||||
            this.AddOption(fromOpt);
 | 
			
		||||
            this.AddArgument(destArg);
 | 
			
		||||
 | 
			
		||||
            this.SetHandler<FileInfo, FileInfo?>(CommandHandler, destArg, fromOpt);
 | 
			
		||||
        }
 | 
			
		||||
        private async void CommandHandler(FileInfo to, FileInfo? from)
 | 
			
		||||
        {
 | 
			
		||||
            IDictionary<string, string> flattened = new Dictionary<string, string>();
 | 
			
		||||
            if (from != null)
 | 
			
		||||
            this.SetHandler(async (FileInfo to, FileInfo? from) =>
 | 
			
		||||
            {
 | 
			
		||||
                flattened = await FlattenJson(from);
 | 
			
		||||
            }
 | 
			
		||||
            using (ResXResourceWriter resxWriter = new ResXResourceWriter(to.FullName))
 | 
			
		||||
            {
 | 
			
		||||
                foreach (KeyValuePair<string, string> keyVal in flattened)
 | 
			
		||||
                IDictionary<string, string> flattened = new Dictionary<string, string>();
 | 
			
		||||
                if (from != null)
 | 
			
		||||
                {
 | 
			
		||||
                    resxWriter.AddResource(keyVal.Key, keyVal.Value);
 | 
			
		||||
                    flattened = await FlattenJson(from);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
                using (ResXResourceWriter resxWriter = new ResXResourceWriter(to.FullName))
 | 
			
		||||
                {
 | 
			
		||||
                    foreach (KeyValuePair<string, string> keyVal in flattened)
 | 
			
		||||
                    {
 | 
			
		||||
                        resxWriter.AddResource(keyVal.Key, keyVal.Value);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }, destArg, fromOpt);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private async Task<IDictionary<string, string>> FlattenJson(FileInfo jsonFile)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user