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();