コード例 #1
0
        public VigenereEncodeResponse EncodeText(VigenereEncodeRequest request)
        {
            var text     = request.Text;
            var key      = request.Key;
            var action   = request.Action;
            var response = new VigenereEncodeResponse();

            try
            {
                switch (action)
                {
                case "encrypt":
                    response.Result    = encoder.Encrypt(text, key);
                    response.IsSuccess = true;
                    break;

                case "decrypt":
                    response.Result    = encoder.Decrypt(text, key);
                    response.IsSuccess = true;
                    break;

                default:
                    response.IsSuccess    = false;
                    response.ErrorMessage = "UNKNOWN ACTION";
                    break;
                }
            }
            catch (Exception e)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = $"BAD REQUEST. SHAME ON YOU. {e.Message}";
            }
            return(response);
        }
コード例 #2
0
        public void DecryptTest()
        {
            // arrange
            string text1    = "пкх тцшвч 123 !м г.,:'~sadawq";
            string text2    = "узй вобро 123 !я ю.,:'~sadawq";
            string text3    = "ккф зфшям 123 !з г.,:'~sadawq";
            string key1     = "пельмень";
            string key2     = "увалень";
            string key3     = "кекс";
            string expected = "аёй цйуфы 123 !э ю.,:'~sadawq";
            var    ve       = new VigenereEncoder();

            // act
            string ans1 = ve.Decrypt(text1, key1);
            string ans2 = ve.Decrypt(text2, key2);
            string ans3 = ve.Decrypt(text3, key3);

            // assert
            Assert.AreEqual(expected, ans1);
            Assert.AreEqual(expected, ans2);
            Assert.AreEqual(expected, ans3);
        }