public override Task <PaymentProviderBeginPaymentResponse> BeginPaymentAsync(BeginPaymentRequest request, System.Threading.CancellationToken cancellation) { var tcs = new TaskCompletionSource <PaymentProviderBeginPaymentResponse>(); try { var service = new com.zarinpal.www.PaymentGatewayImplementationService(); service.PaymentRequestCompleted += new PaymentRequestCompletedEventHandler((object sender, PaymentRequestCompletedEventArgs args) => { if (args.Error != null) { tcs.TrySetException(args.Error); } else if (!args.Cancelled) { try { var result = new PaymentProviderBeginPaymentResponse <ZarinPalBankTranStatus>(Now); result.ProviderType = this.ProviderType; result.Code = SafeClrConvert.ToLong(args.Authority); result.Status = args.Result; result.Succeeded = (args.Result == 100); result.GatewayUrl = Config.GatewayUrl + $"/{result.Code}"; result.SendMethod = Config.GatewayMethod; result.StrongStatus = args.Result.ToEnum <ZarinPalBankTranStatus>(); tcs.SetResult(result); } catch (Exception ex) { tcs.TrySetException(ex); } } else { tcs.SetCanceled(); } service.Dispose(); }); var amount = SafeClrConvert.ToInt32(request.Amount); cancellation.Register(() => service.CancelAsync(request.PaymentCode)); service.PaymentRequestAsync(Config.Credentials.MerchantId, amount, request.Info, "", "", (string.IsNullOrEmpty(request.ReturnUrl) ? Config.CallbackUrl : request.ReturnUrl)); } catch (Exception e) { tcs.SetException(e); } return(tcs.Task); }
protected virtual LogItem Transform(IDataReader reader) { var result = new LogItem { Row = SafeClrConvert.ToLong(reader["Row"]), Id = SafeClrConvert.ToInt(reader["Id"]), Member = SafeClrConvert.ToString(reader["Member"]), Category = SafeClrConvert.ToString(reader["Category"]), Message = SafeClrConvert.ToString(reader["Message"]), FilePath = SafeClrConvert.ToString(reader["FilePath"]), LogDate = SafeClrConvert.ToDateTime(reader["LogDate"]), Line = SafeClrConvert.ToInt(reader["Line"]), }; return(result); }
public override PaymentProviderBeginPaymentResponse BeginPayment(BeginPaymentRequest request) { var result = new PaymentProviderBeginPaymentResponse <ZarinPalBankTranStatus>(Now); result.ProviderType = this.ProviderType; var service = new com.zarinpal.www.PaymentGatewayImplementationService(); var amount = SafeClrConvert.ToInt32(request.Amount); string auth = ""; var status = service.PaymentRequest(Config.Credentials.MerchantId, amount, request.Info, "", "", (string.IsNullOrEmpty(request.ReturnUrl) ? Config.CallbackUrl : request.ReturnUrl), out auth); result.Code = SafeClrConvert.ToLong(auth); result.Status = status; result.Succeeded = status == 100; result.GatewayUrl = Config.GatewayUrl + $"/{result.Code}"; result.SendMethod = Config.GatewayMethod; result.StrongStatus = ((int)status).ToEnum <ZarinPalBankTranStatus>(); return(result); }
public virtual LoggerGetPageResponse GetPage(LoggerGetPageRequest request) { var response = new LoggerGetPageResponse(); if (ConnectionStringProvider != null) { try { var query = GetPagingSql(); var constr = ConnectionStringProvider.GetConnectionString(); if (!string.IsNullOrEmpty(constr)) { using (var con = new SqlConnection(constr)) { using (var cmd = new SqlCommand(query, con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddInputOutput("@CurrentPage", request.CurrentPage); cmd.Parameters.AddInputOutput("@PageSize", request.PageSize); cmd.Parameters.AddOutput("@RecordCount", SqlDbType.Int); cmd.Parameters.AddOutput("@PageCount", SqlDbType.Int); cmd.Parameters.AddInput("@Member", request.Member); cmd.Parameters.AddInput("@Category", request.Category); cmd.Parameters.AddInput("@Message", request.Message); cmd.Parameters.AddInput("@FromDate", request.FromDate); cmd.Parameters.AddInput("@ToDate", request.ToDate); cmd.Parameters.AddInput("@OrderBy", request.OrderBy); cmd.Parameters.AddInput("@OrderDir", request.OrderDir); FinalizePagingCommand(cmd); con.Open(); var reader = cmd.ExecuteReader(); response.Data.CurrentPage = SafeClrConvert.ToInt(cmd.Parameters[0].Value); response.Data.PageSize = SafeClrConvert.ToInt(cmd.Parameters[1].Value); response.Data.RecordCount = SafeClrConvert.ToLong(cmd.Parameters[2].Value); response.Data.PageCount = SafeClrConvert.ToInt(cmd.Parameters[3].Value); response.Data.Items = new List <LogItem>(); while (reader.Read()) { var item = Transform(reader); response.Data.Items.Add(item); } } } response.Succeeded(); } else { response.Message = "ConnectionStringProvider has no connection string"; response.Info = $"Provider = {ConnectionStringProvider.GetType().Name}"; response.SetStatus("NoConStr"); } } catch (Exception e) { response.Failed(e); } } else { response.Message = "No ConnectionStringProvider is specified"; response.SetStatus("NoConStrProvider"); } return(response); }
public static long ToLong(this string s, long @default = default(long)) { return(SafeClrConvert.ToLong(s, @default)); }