diff --git a/Gremlin_BlazorServer/Pages/Contacts.razor b/Gremlin_BlazorServer/Pages/Contacts.razor index 38c9066..beb2aaa 100644 --- a/Gremlin_BlazorServer/Pages/Contacts.razor +++ b/Gremlin_BlazorServer/Pages/Contacts.razor @@ -146,6 +146,7 @@ + Import Contacts from CSV diff --git a/Gremlin_BlazorServer/Pages/Contacts.razor.cs b/Gremlin_BlazorServer/Pages/Contacts.razor.cs index cd18228..6f59b47 100644 --- a/Gremlin_BlazorServer/Pages/Contacts.razor.cs +++ b/Gremlin_BlazorServer/Pages/Contacts.razor.cs @@ -92,6 +92,17 @@ public partial class Contacts { private static async Task OnRemoveDublicates() { int i = await GenericController.RemoveDublicatesAsync(); - Console.WriteLine($"Removed {i} dublicates from Contacts."); + Console.WriteLine(i > 0 ? $"Removed {i} dublicates from Contacts." : "No dublicated contacts found."); + } + + private static async Task OnRemoveBounced() { + IList? bouncedContacts = await GenericController.GetAllAsync(c => c.EMail.Contains("bounced") || c.EmailBounced); + if (bouncedContacts is not null && bouncedContacts.Count > 0) { + int i = await GenericController.RemoveAsync(bouncedContacts); + Console.WriteLine($"Removed {i} bounced contacts."); + } + else { + Console.WriteLine("Found no bounced contacts."); + } } } \ No newline at end of file diff --git a/Gremlin_BlazorServer/Services/GenericController.cs b/Gremlin_BlazorServer/Services/GenericController.cs index 7666866..0dd8ec0 100644 --- a/Gremlin_BlazorServer/Services/GenericController.cs +++ b/Gremlin_BlazorServer/Services/GenericController.cs @@ -206,6 +206,17 @@ public class GenericController { return 0; } } + + public static async Task RemoveAsync(IList entities) where T : class, IMetadata { + try { + await Task.Run(() => gremlinDb.Set().RemoveRange(entities)); + return await gremlinDb.SaveChangesAsync(); + } + catch (Exception exception) { + Console.WriteLine(exception.InnerException); + return 0; + } + } private static void HandleConcurrencyExceptions(DbUpdateException ex) { Console.WriteLine($"!!! HandleConcurrencyException: {ex.Message}"); @@ -231,7 +242,6 @@ public class GenericController { } } - public static async Task RemoveDublicatesAsync() where T : class, IMetadata { try { List entities = gremlinDb.Set().AsEnumerable().GroupBy(e => new { e.HashCode}).SelectMany(grp => grp.Skip(1)).ToList();