using System; using System.Threading.Tasks; using Microsoft.Extensions.Options; using Serilog; using Volo.Abp.DependencyInjection; namespace Win.Abp.NumberConverter.Test { public class NumberConverterTestService : ITransientDependency { private readonly INumberConverter _numberConverter; private readonly AbpNumberConverterOptions _options; public NumberConverterTestService(INumberConverter numberConverter, IOptions options) { _numberConverter = numberConverter; _options = options.Value; Log.Information($"Scale : {_options.GetDefaultScale()}"); Log.Information($"Digits : {_options.GetDefaultDict()}"); } public async Task RunAsync() { Log.Information("Number Convert Test"); await TestNumberConverter(); } private async Task TestNumberConverter() { for (int i = 0; i < 1000; i++) { var str1 = _numberConverter.ConvertTo(i); var n = _numberConverter.ConvertFrom(str1); Console.WriteLine($"[{i}]\t[{str1}]\t[{n}]"); } while (true) { Console.WriteLine("Please input decimal number:"); var s = Console.ReadLine(); if (s == "q") { return; } if (long.TryParse(s, out var n)) { var str1 = _numberConverter.ConvertTo(n); Console.WriteLine("----------Injection-----------"); Console.WriteLine($"Convert {n} to {_options.Scale} : \"{str1}\""); Console.WriteLine($"Reverse {str1} to 10 : \"{ _numberConverter.ConvertFrom(str1)}\""); Console.WriteLine("-----------Static-------------"); var str2 = n.ConvertTo(_options.Scale.Value); Console.WriteLine($"Convert {n} to {_options.Scale} : \"{str2}\""); Console.WriteLine($"Reverse {str2} to 10 : \"{str2.ConvertReverse(_options.Scale.Value)}\""); Console.WriteLine(""); } else { Console.WriteLine($"{s} is not a valid decimal number;"); } } } } }