public ActionResult <string> GetDecrypt(string method, string str, string key)
        {
            try
            {
                if (method == "caesar")
                {
                    Caesar caesar = new Caesar();

                    var result = caesar.Decode(str, key);

                    if (result.Item2 == true)
                    {
                        SaveDecryptItems(method, str, key, result.Item1);

                        return(result.Item1);
                    }
                }
                else if (method == "railfence")
                {
                    RailFence railFence = new RailFence();

                    var result = railFence.Decode(str, key);

                    if (result.Item2 == true)
                    {
                        SaveDecryptItems(method, str, key, result.Item1);

                        return(result.Item1);
                    }
                }
                else if (method == "affine")
                {
                    Affine affine = new Affine();

                    var result = affine.Decode(str, key);

                    if (result.Item2 == true)
                    {
                        SaveDecryptItems(method, str, key, result.Item1);

                        return(result.Item1);
                    }
                }
                else if (method == "substitution")
                {
                    Substitution substitution = new Substitution();

                    var result = substitution.Decode(str, key);

                    if (result.Item2 == true)
                    {
                        SaveDecryptItems(method, str, key, result.Item1);

                        return(result.Item1);
                    }
                }
            }
            catch (System.Exception e)
            {
                return(e.Message);
            }

            return("No such method!");
        }