aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs
diff options
context:
space:
mode:
authorRoy <Roy.mail.net@gmail.com>2022-06-21 21:49:58 +0300
committerRoy <Roy.mail.net@gmail.com>2022-06-21 21:49:58 +0300
commit5280a0b306a370cd464dfc391d7ff57f201d6643 (patch)
treee0d855cfc3db32e2c43d0b116bc234d4415ca21b /Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs
parentaac9149694dceea12240ece6b760055292de7e48 (diff)
downloadTango-5280a0b306a370cd464dfc391d7ff57f201d6643.tar.gz
Tango-5280a0b306a370cd464dfc391d7ff57f201d6643.zip
Email Bulk Modifier.
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs88
1 files changed, 88 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs
new file mode 100644
index 000000000..a5370b12c
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL;
+using Tango.Core;
+using Tango.CSV;
+using System.Data.Entity;
+using Tango.BL.Entities;
+
+namespace Tango.BulkEmailModifier.CLI
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Modifying email addresses...");
+
+ var emails = CsvFile.Read<Model>(new CsvSource("Emails.csv")).ToList();
+
+ DataSource dataSource = new DataSource();
+ dataSource.Address = "twine.database.windows.net";
+ dataSource.IntegratedSecurity = false;
+ dataSource.UserName = "Roy";
+ dataSource.Password = "Aa123456";
+
+ List<String> catalogs = new List<string>()
+ {
+ "Tango_DEV",
+ "Tango_TEST",
+ "Tango_PROCESS",
+ "Tango_ALPHA",
+ "Tango_BETA",
+ "Tango_STAGE",
+ "Tango",
+ "Tango_BB",
+ };
+
+ foreach (var catalog in catalogs)
+ {
+ Console.WriteLine();
+ Console.WriteLine($"Switching to database {catalog}...");
+ Console.WriteLine();
+
+ dataSource.Catalog = catalog;
+
+ using (ObservablesContext db = ObservablesContext.CreateDefault(dataSource))
+ {
+ foreach (var email in emails)
+ {
+ var user = db.Users.Include(x => x.Contact).SingleOrDefault(x => x.Email.ToLower() == email.Old.ToLower());
+
+ if (user == null)
+ {
+ Console.ForegroundColor = ConsoleColor.DarkGray;
+ Console.WriteLine($"'{email.Old}' not found.");
+ Console.ForegroundColor = ConsoleColor.Gray;
+ continue;
+ }
+
+ var existingNewUser = db.Users.SingleOrDefault(x => x.Email.ToLower() == email.New.ToLower());
+ if (existingNewUser != null)
+ {
+ Console.WriteLine($"Deleting existing new user for {existingNewUser.Email}...");
+ db.Users.Remove(existingNewUser);
+ db.SaveChanges();
+ }
+
+ user.Email = email.New;
+
+ if (user.Contact.Email.ToLower() == email.Old.ToLower())
+ {
+ user.Contact.Email = email.New;
+ }
+
+ Console.WriteLine($"Modifying {catalog} {email.Old} => {email.New}");
+ db.SaveChanges();
+ }
+ }
+ }
+
+ Console.ForegroundColor = ConsoleColor.Green;
+ Console.WriteLine();
+ Console.WriteLine("DONE");
+ }
+ }
+}