public async Task <ActionResult> WithdrawCancel(string userid, string code, int withdrawid)
        {
            if (!await VerifyUserTwoFactorTokenAsync(TwoFactorTokenType.WithdrawCancel, userid, code))
            {
                ViewBag.SubTitle = "Invalid Security Token";
                ViewBag.Message  = $"Security token for cancellation of withdraw #{withdrawid} is invalid or has expired.";
                return(View("Error"));
            }

            var result = await WithdrawWriter.CancelWithdraw(User.Identity.GetUserId(), new CancelWithdrawModel
            {
                WithdrawId = withdrawid
            });

            if (!result.Success)
            {
                ViewBag.SubTitle = "Withdraw Cancel Failed.";
                ViewBag.Message  = result.Message;
                return(View("Error"));
            }

            ViewBag.SubTitle = "Withdrawal Canceled";
            ViewBag.Message  = $"Withdrawal #{withdrawid} has been successfully canceled.";
            return(View("Success"));
        }
        public async Task <ActionResult> CancelWithdraw(int withdrawid)
        {
            var result = await WithdrawWriter.CancelWithdraw(User.Identity.GetUserId(), new CancelWithdrawModel
            {
                WithdrawId = withdrawid
            });

            if (!result.Success)
            {
                return(JsonError(result.Message));
            }

            return(JsonSuccess(string.Format("Withdrawal #{0} has been successfully canceled.", withdrawid)));
        }