Example #1
0
        public async Task <DumpMiniInfo> GetOrCreateMiniInfo(DumpIdentifier id)
        {
            if (dumpRepo.MiniInfoExists(id))
            {
                try {
                    var loadedMiniInfo = await dumpRepo.GetMiniInfo(id);

                    if (loadedMiniInfo.DumpSimilarityInfoVersion == CrashSimilarity.MiniInfoVersion)
                    {
                        return(loadedMiniInfo);
                    }
                } catch {
                    Console.WriteLine($"could not load miniinfo for {id}. will re-create it.");
                }
            }

            // no mini-info exists yet, or version is outdated. re-create.
            var result = await dumpRepo.GetResult(id);

            var miniInfo =
                (result == null)
                                ? new DumpMiniInfo() // just store an empty mini-info if result is null
                                : CrashSimilarity.SDResultToMiniInfo(result);
            await dumpRepo.StoreMiniInfo(id, miniInfo);

            return(miniInfo);
        }