private static string TranslatedNumber(string charString, CodeKey_ codeKey, bool above = true)
        {
            var number      = above ? int.Parse(charString) + (int)codeKey : int.Parse(charString) - (int)codeKey;
            var translation = Enum.GetValues(typeof(TranslationDescription_)).Cast <TranslationDescription_>().ToList().Find(e => (int)e == number);

            return(EnumDescription(translation));
        }
        private static string TranslatedLetter(string charString, CodeKey_ codeKey, bool above = true)
        {
            var letter      = charString;
            var translation = Enum.GetValues(typeof(TranslationDescription_)).Cast <TranslationDescription_>().ToList().Find(e => EnumDescription(e) == letter);
            var number      = above ? (int)translation + (int)codeKey : (int)translation - (int)codeKey;

            return(number.ToString());
        }
        public static string Encrypt(string decryption, CodeKey_ decodeKey)
        {
            var encryption = string.Empty;
            var temp       = string.Empty;
            var addition   = string.Empty;

            switch (decodeKey)
            {
            case CodeKey_.oei_ntla_ltnb_si:
                decryption.ToList().ForEach(c =>
                {
                    var charString = $"{string.Empty}{c}";

                    if (Char.IsNumber(c))
                    {
                        addition = TranslatedNumber(charString, decodeKey);
                    }
                    else if (Char.IsLetter(c))
                    {
                        addition = TranslatedLetter(charString, decodeKey, above: false);
                    }
                    else
                    {
                        addition = charString;
                    }

                    temp += string.Join(string.Empty, Enumerable.Range(1, (int)decodeKey).Select(n => addition));
                });
                encryption = temp += (int)decodeKey;
                break;

            case CodeKey_.pi_oei_ntlb_ltna:
                decryption.ToList().ForEach(c =>
                {
                    var charString = $"{string.Empty}{c}";

                    if (Char.IsNumber(c))
                    {
                        addition = TranslatedNumber(charString, decodeKey, above: false);
                    }
                    else if (Char.IsLetter(c))
                    {
                        addition = TranslatedLetter(charString, decodeKey);
                    }
                    else
                    {
                        addition = charString;
                    }

                    temp += string.Join(string.Empty, Enumerable.Range(1, (int)decodeKey).Select(n => addition));
                });
                encryption = $"{(int)decodeKey} + {temp}";
                break;
            }

            return(encryption);
        }
        public static string Decrypt(string encryption, CodeKey_ encodeKey)
        {
            var         decryption         = string.Empty;
            var         temp               = string.Empty;
            List <char> distinctEncryption = null;
            var         addition           = string.Empty;

            switch (encodeKey)
            {
            case CodeKey_.oei_ntla_ltnb_si:
                temp = encryption.TrimEnd($"{(int)encodeKey}".ToArray());
                distinctEncryption = temp.GroupBy(g => g).Select(c => c.Key).ToList();

                distinctEncryption.ToList().ForEach(c =>
                {
                    var charString = $"{string.Empty}{c}";

                    if (Char.IsNumber(c))
                    {
                        addition = TranslatedNumber(charString, encodeKey, above: false);
                    }
                    else if (Char.IsLetter(c))
                    {
                        addition = TranslatedLetter(charString, encodeKey);
                    }
                    else
                    {
                        addition = charString;
                    }

                    decryption += addition;
                });
                break;

            case CodeKey_.pi_oei_ntlb_ltna:
                temp = encryption.TrimStart($"{(int)encodeKey}".ToArray());
                distinctEncryption = temp.GroupBy(g => g).Select(c => c.Key).ToList();

                distinctEncryption.ToList().ForEach(c =>
                {
                    var charString = $"{string.Empty}{c}";

                    if (Char.IsNumber(c))
                    {
                        addition = TranslatedNumber(charString, encodeKey);
                    }
                    else if (Char.IsLetter(c))
                    {
                        addition = TranslatedLetter(charString, encodeKey, above: false);
                    }
                    else
                    {
                        addition = charString;
                    }

                    decryption += addition;
                });
                break;
            }

            return(decryption);
        }