diff options
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs')
| -rw-r--r-- | Software/Visual_Studio/Utilities/Tango.BulkEmailModifier.CLI/Program.cs | 88 |
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"); + } + } +} |
