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(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 catalogs = new List() { "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"); } } }