using System; using Microsoft.Extensions.CommandLineUtils; using RazorLight; using System.IO; using Microsoft.Extensions.Logging; using System.Globalization; using System.Text; using Knoks.CryptoExchanges; namespace Knoks.Sandbox { public class Program { private static ILoggerFactory LoggerFactory = new LoggerFactory() .AddConsole() .AddDebug(); public static void Main(string[] args) { var app = new CommandLineApplication(); app.Name = "dotnet run"; app.OnExecute(() => { Console.WriteLine("LDI Sandbox."); return 0; }); app.Command("sm", command => { command.Description = "State machine example."; command.OnExecute(() => { LoanRequestStateMachine.Test(); return 0; }); }); app.Command("test", command => { command.Description = "State machine example."; command.OnExecute(() => { CultureInfo ci; RegionInfo ri; StringBuilder sb = new StringBuilder(); foreach (var name in new[] { "en", "en-US", "ru", "uk", "hi", "he" }) { ci = null; ri = null; ci = new CultureInfo(name); if (!ci.IsNeutralCulture) ri = new RegionInfo(name); sb.AppendLine($"{ci.EnglishName},{ci.NativeName},{ci.DisplayName}"); } return 0; }); }); app.Command("exchanges", command => { command.Description = "Start CryptoExchanges request."; command.OnExecute(() => { var exchanges = new CryptoExchangeManager(); exchanges.StartExchangesRequest(); Console.ReadLine(); exchanges.StopExchangesRequest().Wait(); return 0; }); }); app.Command("be", command => { command.Description = "Build email with RazorLigr library."; command.OnExecute(() => { //https://github.com/mailgun/transactional-email-templates //https://docs.microsoft.com/en-us/aspnet/core/mvc/views/layout //https://github.com/toddams/RazorLight var engine = new EngineFactory().ForFileSystem(Path.Combine(Directory.GetCurrentDirectory(), "Templates", "Email")); var result = engine.CompileRenderAsync("welcome.cshtml", new { BrandName = "Knoks Inc.", Text = "Kuku 123", Layout = "./NewFolder/_Layout.cshtml" }); return 0; }); }); app.HelpOption("-?|-h|--help"); Environment.Exit(app.Execute(args.Length == 0 ? new[] { "-?" } : args)); } } }