/// <summary> /// /// </summary> public void AddServer() { var svr = SmtpServer.CreateNew(); AmaraCode.Security sec = new AmaraCode.Security(); try { //call method to prompt user for input svr = PromptSmtpServer(); Statics.Servers.Add(svr.ServerName, svr); Statics.PersistSMTPServer(); Statics.Display($"Server Added: ", false, ConsoleColor.Gray); Statics.Display($"{svr.Host}", true, ConsoleColor.Green); Statics.Display($"New SMTP Server Count: ", false, ConsoleColor.Gray); Statics.Display($"{Statics.Servers.Count}", true, ConsoleColor.Green); System.Console.WriteLine(""); Statics.PressAnyKey(); } catch { Statics.Display("Invalid input", true, ConsoleColor.Red); System.Console.WriteLine(""); Statics.PressAnyKey(); } }
/// <summary> /// This method should handle all the prompts to get SMTPServer info from the users. /// If a SmtpServer object is passed in then use that to populate for Edit. /// </summary> /// <param name="server"></param> /// <returns></returns> private SmtpServer PromptSmtpServer(SmtpServer server = null) { //keep varible stating if an object was passed in. bool hasServer = server == null ? false : true; AmaraCode.Security sec = new AmaraCode.Security(); var newServer = SmtpServer.CreateNew(); if (hasServer == false) { //this is genearlly used for an ADD method //create a new instance since not passed in. //server = SmtpServer.CreateNew(); newServer.ServerName = Statics.GetUserInput("Server Name: ", ConsoleColor.Gray, ConsoleColor.Green); newServer.Host = Statics.GetUserInput("Enter Host: ", ConsoleColor.Gray, ConsoleColor.Green); newServer.Port = Statics.GetUserInput <int>("Enter Port: ", ConsoleColor.Gray, ConsoleColor.Green); newServer.UserName = Statics.GetUserInput("Enter UserName: "******"Enter Secret: ", ConsoleColor.Gray, ConsoleColor.Green), Statics.EncryptionKey); } else { if (Statics.GetUserSingleInput("Edit ServerName (y/n) ", ConsoleColor.Gray, ConsoleColor.Green) == 'y') { newServer.ServerName = Statics.GetUserInput($"Server Name [{server.ServerName}]: ", ConsoleColor.Gray, ConsoleColor.Green); } else { newServer.ServerName = server.ServerName; } if (Statics.GetUserSingleInput("Edit Host (y/n) ", ConsoleColor.Gray, ConsoleColor.Green) == 'y') { newServer.Host = Statics.GetUserInput($"Enter Host [{server.Host}]: ", ConsoleColor.Gray, ConsoleColor.Green); } else { newServer.Host = server.Host; } if (Statics.GetUserSingleInput("Edit Port (y/n) ", ConsoleColor.Gray, ConsoleColor.Green) == 'y') { newServer.Port = Statics.GetUserInput <int>($"Enter Port [{server.Port.ToString()}]: ", ConsoleColor.Gray, ConsoleColor.Green); } else { newServer.Port = server.Port; } if (Statics.GetUserSingleInput("Edit UserName (y/n) ", ConsoleColor.Gray, ConsoleColor.Green) == 'y') { newServer.UserName = Statics.GetUserInput($"Enter UserName [{server.UserName}]: ", ConsoleColor.Gray, ConsoleColor.Green); } else { newServer.UserName = server.UserName; } if (Statics.GetUserSingleInput("Edit Secret (y/n) ", ConsoleColor.Gray, ConsoleColor.Green) == 'y') { newServer.Secret = sec.Encrypt(Statics.GetUserInput($"Enter Secret [{sec.Decrypt(server.Secret, Statics.EncryptionKey)}]: ", ConsoleColor.Gray, ConsoleColor.Green), Statics.EncryptionKey); } else { newServer.Secret = server.Secret; } } return(newServer); }