/// <summary> /// Object hash code /// </summary> /// <returns></returns> public override int GetHashCode() { unchecked { var hashCode = Name != null?Name.GetHashCode() : 0; hashCode = (hashCode * 397) ^ (Accession != null ? Accession.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Length; hashCode = (hashCode * 397) ^ (Seq != null ? Seq.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (SearchDatabase != null ? SearchDatabase.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (CVParams != null ? CVParams.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (UserParams != null ? UserParams.GetHashCode() : 0); return(hashCode); } }
static async Task Main(string[] args) { using var cancellationToken = new CancellationTokenSource(); Console.CancelKeyPress += (sender, eventArgs) => { // ReSharper disable AccessToDisposedClosure if (!cancellationToken.IsCancellationRequested) { cancellationToken.Cancel(); } // ReSharper restore AccessToDisposedClosure }; var cmd = args.Length == 0 ? "markdown" : args[0].Trim().ToLowerInvariant(); var search = args.Length < 2 ? "18452" : args[1].Trim(); var commandletArgs = args.Skip(1).ToArray(); switch (cmd) { case "blizzard": var commandlet = new BlizzardApiCommandlet(commandletArgs, cancellationToken.Token); await commandlet.Execute(); break; case "caches": await ScanCache.Execute(); break; case "search": await SearchDatabase.Execute(search); break; case "sql": ExportToSql.Execute(); break; case "mdt": //using (var file = File.OpenRead(@"D:\Work\RoboKiwi.gg\src\RoboKiwi.Core\Models\MethodDungeonTools.json")) var json = await File.ReadAllTextAsync(@"D:\Work\RoboKiwi.gg\src\RoboKiwi.Core\Models\MethodDungeonTools.json"); { //dynamic model = await JsonSerializer.DeserializeAsync<dynamic>(file, options, CancellationToken.None); dynamic model = JsonConvert.DeserializeObject(json); foreach (var dungeon in model.global.dungeonEnemies) { if (dungeon == null) { continue; } foreach (var enemy in dungeon) { if (enemy == null) { continue; } Console.WriteLine(enemy.name); } } } break; case "journal": await ExtractJournal(); break; case "markdown": var markdown = new MarkdownCommandlet(commandletArgs, cancellationToken.Token); await markdown.Execute(); break; case "json": await GenerateJson(); break; default: throw new ArgumentOutOfRangeException(nameof(args)); } }