internal async Task eSignPackageHistorySetAsync(eSignPackageHistory history) { var sqlParams = new SqlParameter[] { history.AccountId.ToSql("accountId"), history.oAuthClientId.ToSql("oauthClientId"), history.eSignClientId.ToSql("eSignClientId"), history.PackageId.ToSql("packageId"), history.IsSuccess.ToSql("isSuccess"), history.HttpStatusCode.ToSql("httpStatusCode"), history.IpAddressHash.ToSql("ipAddressHash"), history.AccountProductId.ToSql("accountProductId"), history.AccountMicrotransactionId.ToSql("accountMicrotransactionId"), }; await ExecuteNonQueryAsync("[eSign].[peSignPackageHistorySet]", sqlParams); }
private async Task <HttpResponseMessage> Send(string json, Guid packageId, CancellationToken cancellationToken) { var session = await GetSessionToken(); if (object.Equals(session, null)) { return(Request.CreateResponse(HttpStatusCode.Unauthorized)); } Guid?accountProductId = null; Guid?accountMicrotransactionId = null; if (!await IsAvailableFreeSigns(json, session)) { ViewAccountMicrotransaction microtransaction; var microtransactions = await _authProduct.AccountMicrotransactionsGetAsync(session.AccountId); accountMicrotransactionId = eSignHelper.GetAllowedAccountMicrotransactionId(microtransactions, out microtransaction); ViewAccountProduct product; var products = await _authProduct.AccountProductsGetAsync(session.AccountId); accountProductId = eSignHelper.GetAllowedAccountProductId(products, session.AccountProductId, out product); if (!accountMicrotransactionId.HasValue && !accountProductId.HasValue) { return(PaymentRequired("User doesn't have enough number of signs.")); } else { if (accountMicrotransactionId.HasValue && !microtransaction.AllowedEsignCount.HasValue) { accountProductId = null; } if (accountProductId.HasValue && !product.AllowedEsignCount.HasValue) { accountMicrotransactionId = null; } if (accountMicrotransactionId.HasValue && accountProductId.HasValue) { accountProductId = null; } } } var response = await HttpProxy(Request, Format("{0}", packageId), cancellationToken); if (response.IsSuccessStatusCode && (accountProductId.HasValue || accountMicrotransactionId.HasValue)) { await _eSign.eSignUseIncreaseAsync(session.AccountId, accountProductId, accountMicrotransactionId); } var history = new eSignPackageHistory { AccountId = session.AccountId, oAuthClientId = session.ClientId, eSignClientId = eSignClient, HttpStatusCode = (int)response.StatusCode, IsSuccess = response.IsSuccessStatusCode, PackageId = packageId, IpAddressHash = IpAddressDetector.IpAddress.GetShortMD5Hash(), AccountProductId = accountProductId, AccountMicrotransactionId = accountMicrotransactionId }; await _eSign.eSignPackageHistorySetAsync(history); return(response); }
public Task eSignPackageHistorySetAsync(eSignPackageHistory history) { return(_context.eSignPackageHistorySetAsync(history)); }