using System.Reflection; namespace TelegramMessageCounter; public static class ArgumentReader { public static DataRequest ReadArguments(string[] args) { string? login = null; string? username = null; if (args.Length > 0 && args.Any(x => x == "--help")) { var helpFile = Assembly.GetExecutingAssembly() .GetManifestResourceStream("TelegramMessageCounter.help.txt"); Console.WriteLine(new StreamReader(helpFile ?? new MemoryStream()).ReadToEnd()); Environment.Exit(0); } if (args.Any(x => x == "--user")) { var userNameArgIndex = args.ToList().IndexOf("--user"); username = args[userNameArgIndex + 1]; } if (args.Any(x => x == "--login" || x == "-L")) { var userNameArgIndex = args.ToList().IndexOf("--login"); if (userNameArgIndex == -1) { userNameArgIndex = args.ToList().IndexOf("-L"); } login = args[userNameArgIndex + 1]; } string?[] argValues = [login, username]; string? path = args.Length > 1 && argValues.All(x => x != args.Last()) ? args.Last() : null; if (path == null) return new(login, username); return new(login, username, path); } }