コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: SadRobotGG/SadRobot.gg
        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));
            }
        }