public bool THTDeposit(THTDepositFormDTO form) { var authorization = Request.Headers.Authorization; if (authorization?.Parameter == null || authorization.Parameter != YJYGlobal.CALLBACK_AUTH_TOKEN) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "invalid auth token")); } if (string.IsNullOrWhiteSpace(form.transactionHash) || string.IsNullOrWhiteSpace(form.from) || string.IsNullOrWhiteSpace(form.tokenAmount)) { throw new ArgumentOutOfRangeException(nameof(form)); } form.tokenAmount = form.tokenAmount.Trim(); form.transactionHash = form.transactionHash.Trim(); form.from = form.from.Trim(); form.to = form.to.Trim(); BigInteger bi; var tryParse = BigInteger.TryParse(form.tokenAmount, NumberStyles.None, null, out bi); if (!tryParse || bi < new BigInteger(0)) { throw new ArgumentOutOfRangeException(nameof(form.tokenAmount)); } var deposit = FundService.AddTHTDeposit(form.transactionHash, form.@from, form.to, form.tokenAmount); if (deposit == null) { return(false); } try { var fundService = new FundService(db); fundService.AddUserBalanceByTHTDeposit(deposit.Id); } catch (Exception e) { YJYGlobal.LogExceptionAsWarning(e); } return(true); }