public async Task <IActionResult> Approve(string id)
        {
            var contract = new Contract
            {
                WalletName     = User.GetWalletName(),
                WalletAddress  = User.GetWalletAddress(),
                WalletPassword = _appConfiguration.Value.WalletPassword
            };

            var transaction = await _blockChainApi.ApproveApplication(contract, id);

            if (transaction.Success)
            {
                for (var i = 0; i < 2; i++)
                {
                    await Task.Delay(_appConfiguration.Value.AverageBlockTime);

                    var receipt = await _blockChainApi.GetReceipt(transaction.TransactionId);

                    if (receipt.Success)
                    {
                        await _userService.UpdateApplicationStatus(id, (int)Enums.ApplicationStatus.Approved);

                        break;
                    }

                    if (!string.IsNullOrEmpty(receipt.Error))
                    {
                        _toastNotification.AddErrorToastMessage(receipt.Error);
                        return(View("/Admin/Views/Index.cshtml"));
                    }
                }
                _toastNotification.AddSuccessToastMessage(Constants.ApprovedSuccess);
                return(RedirectToAction("AdminDashBoard"));
            }

            _toastNotification.AddErrorToastMessage(Constants.Error);
            return(View("/Admin/Views/Index.cshtml"));
        }