コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
        /// <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);
        }