public async Task <ActionResult> DeleteDuplicatesConfirmed(int id, bool fuzzyMatch = false) { var currentClient = await GetCurrentClient(); var account = await Db.Accounts.FirstOrDefaultAsync(x => x.ClientId == currentClient.Id && x.Id == id); var dedupService = new DeduplicateService(Db); IEnumerable <Duplicate> duplicates; if (!fuzzyMatch) { duplicates = await dedupService.FindExactDuplicates(account.Id); } else { duplicates = await dedupService.FindPossibleDuplicates(account.Id); } foreach (var line in duplicates.SelectMany(x => x.Duplicates)) { Db.Lines.Remove(line); } await Db.SaveChangesAsync(); return(RedirectToAction("Duplicates", new { id = account.Id, fuzzyMatch })); }
public async Task <ActionResult> Duplicates(int id, bool fuzzyMatch = false) { var currentClient = await GetCurrentClient(); var account = await Db.Accounts.FirstOrDefaultAsync(x => x.ClientId == currentClient.Id && x.Id == id); if (account != null) { var dedupService = new DeduplicateService(Db); var viewModel = new DuplicatesViewModel(); if (!fuzzyMatch) { viewModel.Fill(account, await dedupService.FindExactDuplicates(account.Id), false); } else { viewModel.Fill(account, await dedupService.FindPossibleDuplicates(account.Id), true); } return(View(viewModel)); } return(HttpNotFound()); }