public async Task <IOrderedEnumerable <DumpViewModel> > SearchDuplicates(DumpIdentifier id, bool includeSimilarities = true) { var similarDumps = new Similarities(await similarityService.GetSimilarities(id)).AboveThresholdSimilarities().Select(x => x.Key); var dumpViewModels = await Task.WhenAll(similarDumps.Select(x => ToDumpViewModel(x, includeSimilarities))); var dumpViewModelsOrdered = dumpViewModels.OrderByDescending(x => x.DumpInfo.Created); return(dumpViewModelsOrdered); }
private static async Task <DumpViewModel> ToDumpViewModel(DumpMetainfo dumpMetainfo, DumpRepository dumpRepo, BundleRepository bundleRepo, SimilarityService similarityService = null) { if (dumpMetainfo == null) { return(null); } var similarities = similarityService == null ? null : new Similarities(await similarityService.GetSimilarities(dumpMetainfo.Id)); return(new DumpViewModel(dumpMetainfo, new BundleViewModel(bundleRepo.Get(dumpMetainfo.BundleId)), similarities)); }