public static Task<TransactionResult> ProceedTransactionAsync(PaymentDTO model, Uri startUri, Uri successUri, Uri errorUri) { if (model == null) throw new ArgumentException("model"); _startUri = startUri; _errorUri = errorUri; _successUri = successUri; _model = model; var rootFrame = Application.Current.RootVisual as PhoneApplicationFrame; if (rootFrame == null) { throw new InvalidOperationException("RootFrame wasn't found in current app domain"); } rootFrame.Navigate(new Uri("/WhallaLabs.Services.PayU;component/View/PayuTransactionView.xaml", UriKind.RelativeOrAbsolute)); Task<TransactionResult> transactionTask = Task<TransactionResult>.Factory.StartNew(() => { _transactionFinishedEvent.WaitOne(); return _transactionResult; }); return transactionTask; }
//سپیده حسینی-09-04-93-create public void CreateStudentPayment(PaymentDTO payInfo) { PaymentDTO PaymentDTO = new PaymentDTO(); SqlCommand cmdpay = new SqlCommand(); cmdpay.Connection = conn; cmdpay.CommandType = CommandType.StoredProcedure; cmdpay.CommandText = "Request.SP_InsertPaymentRequest"; cmdpay.Parameters.AddWithValue("@orderId", payInfo.OrderId); cmdpay.Parameters.AddWithValue("@amount", payInfo.Amount); cmdpay.Parameters.AddWithValue("@stcode", payInfo.stcode); cmdpay.Parameters.AddWithValue("@tterm", payInfo.tterm); cmdpay.Parameters.AddWithValue("@bankId", payInfo.bankId); cmdpay.Parameters.AddWithValue("@PayType", payInfo.PayType); cmdpay.Parameters.AddWithValue("@Description", payInfo.Description); cmdpay.Parameters.AddWithValue("@RequestId", payInfo.RequestId); cmdpay.Parameters.AddWithValue("@RequestKey", payInfo.ReqKey); cmdpay.Parameters.AddWithValue("@AppStatus", payInfo.AppStatus); cmdpay.Parameters.AddWithValue("@result", payInfo.Result); try { conn.Open(); cmdpay.ExecuteNonQuery(); conn.Close(); cmdpay.Dispose(); } catch (Exception ex) { if (conn.State == ConnectionState.Open) { conn.Close(); } throw; } }
protected void btnPay_Click(object sender, EventArgs e) { try { string result; long orderid;// = new bmp_PaymentBusiness().GenerateOrderId(); PaymentDTO pay = new PaymentDTO(); bmp_PaymentBusiness bmp = new bmp_PaymentBusiness(); pay.Amount = Convert.ToInt64(Session["fee"].ToString()); //pay.PayDate = PayDate + "_" + PayTime; pay.stcode = Session[sessionNames.userID_StudentOstad].ToString(); pay.bankId = 2; pay.tterm = ConfigurationManager.AppSettings["Term"]; string additionalInfo = pay.stcode; PaymentGatewayImplService bpService = new PaymentGatewayImplService(); result = bmp.pay(pay.Amount, pay.stcode, out orderid, Convert.ToInt32(Session[sessionNames.appID_StudentOstad]), 0); pay.OrderId = orderid; Response.Write(result); String[] resultArray = result.Split(','); pay.ReqKey = resultArray[1]; pay.AppStatus = "none"; pay.TraceNumber = 0; pay.Result = -1; } catch (Exception) { // PayOutputLabel.Text = "Error: " + exp.Message; } }
public static PaymentDTO AddPayment(string PaymentEmail, string ReceipientEmail, Double amount, string message, string paymentType, Boolean anonymous, DateTime paymentDate, int transactionID, int invoiceID) { ConvictsContext db = new ConvictsContext(); PaymentRecord payment = new PaymentRecord(); payment.PayerEmail = PaymentEmail; payment.amount = amount; payment.TeamCode = Helper.getTeamCode(ReceipientEmail); payment.ConvictEmail = ReceipientEmail; payment.PaymentType = paymentType; payment.Message = message; payment.CreateDate = paymentDate; payment.Anonymous = anonymous; payment.TransactionID = transactionID; payment.InvoiceID = invoiceID; string returnStatus = "false"; string errorMessage = ""; try { db.Payments.Add(payment); db.SaveChanges(); returnStatus = "true"; } catch (Exception ex) { returnStatus = "false"; errorMessage = ex.Message ; } PaymentDTO returnobj = new PaymentDTO(); returnobj.status = returnStatus; returnobj.errorMessage = errorMessage; return returnobj; }
public void MarkAsPaid() { SelectedAppointment.IsRunning = true; parentView.RunAsynchronousOperation(delegate { try { PaymentBasketDTO basket = new PaymentBasketDTO(); PaymentDTO payment = new PaymentDTO(); payment.Product = SelectedReservation.Reservation; payment.Count = 1; payment.Price = SelectedReservation.Reservation.Price; basket.Payments.Add(payment); basket.TotalPrice = payment.Price; basket = ServiceManager.PaymentBasketOperation(basket); var newReservation = new ScheduleEntryReservationViewModel((ScheduleEntryReservationDTO)basket.Payments[0].Product); parentView.SynchronizationContext.Send(delegate { SelectedAppointment.IsRunning = false; Reservations.Remove(SelectedReservation); Reservations.Add(newReservation); SelectedReservation = newReservation; }, null); } catch (Exception ex) { parentView.SynchronizationContext.Send( delegate { SelectedAppointment.IsRunning = false; ExceptionHandler.Default.Process(ex, "Exception_ScheduleEntriesDesignViewModel_MarkAsPaid".TranslateInstructor(), ErrorWindow.EMailReport); }, null); } }); }
public async Task TestCreatePaymentForFlatAsync() { // Arrange var flatId = 1; var payment = new PaymentDTO { Amount = 99, PaymentType = PaymentType.Other, Frequency = Frequency.Weekly, StartDate = new DateTime(2020, 04, 04), EndDate = new DateTime(2020, 05, 05), Fixed = false, Description = "food", }; var userIds = new List <int> { 1, 2 }; // Act var response = await _paymentsController.CreatePaymentForFlat(flatId, payment, userIds); // Assert Assert.IsInstanceOf <OkObjectResult>(response); }
private void AddNewPayment() { if (Warehouses != null) { SelectedWarehouse = Warehouses.FirstOrDefault(w => w.IsDefault) ?? Warehouses.FirstOrDefault(); } else { return; } if (SelectedWarehouse != null && SelectedWarehouse.Id != -1 && SelectedPayment == null) { SelectedPayment = new PaymentDTO { PaymentType = PaymentType, PaymentDate = DateTime.Now, PaymentMethod = PaymentMethods.Cash, Status = PaymentStatus.NotCleared, WarehouseId = SelectedWarehouse.Id } } ; }
public void PayForAlreadyPaidProduct() { var zakup = CreatePayment(entries[0].Reservations.ElementAt(0), profiles[0]); insertToDatabase(zakup); var koszyk = new PaymentBasketDTO(); koszyk.CustomerId = customers[0].GlobalId; koszyk.TotalPrice = 10m; var zakupdto = new PaymentDTO(); zakupdto.Count = 1; zakupdto.Product = entries[0].Reservations.ElementAt(0).Map <ProductDTO>(); koszyk.Payments.Add(zakupdto); var profile = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService service) { koszyk = service.PaymentBasketOperation(data.Token, koszyk); }); }
public string Validate(PaymentDTO payment) { if (null == payment) { return(GenericMessages.ObjectIsNull); } if (payment.Warehouse == null) { return("Warehouse " + GenericMessages.ObjectIsNull); } if (String.IsNullOrEmpty(payment.Reason)) { return(payment.Reason + " " + GenericMessages.StringIsNullOrEmpty); } if (String.IsNullOrEmpty(payment.PersonName)) { return(payment.PersonName + " " + GenericMessages.StringIsNullOrEmpty); } return(string.Empty); }
public ActionResult CreatePayment(CreatePaymentViewModel model) { if (ModelState.IsValid) { var payment = new PaymentDTO { Amount = model.Amount, Date = DateTime.Now, Details = model.Details, IsSent = true, Name = model.Name, Recipient = AccountService.FindByNumber(model.RecipientNumber), SenderId = model.SelectedAccountId, }; OperationDetails operationDetails = PaymentService.Create(payment); if (operationDetails.Succedeed) { return(Redirect("/Payment/Index")); } else { var accounts = AccountService.FindUserAccounts(User.Identity.GetUserId()).ToList(); model.Accounts = new SelectList(accounts, "Id", "Name"); ModelState.AddModelError(operationDetails.Property, operationDetails.Message); } return(View(model)); } else { var accounts = AccountService.FindUserAccounts(User.Identity.GetUserId()).ToList(); model.Accounts = new SelectList(accounts, "Id", "Name"); return(View(model)); } }
public async Task AddPaymentAsync() { //Arrange var fakeEventBus = new Mock <IEventBus>(); var fakeGateWay = new Mock <IPaymentExternalGateway>(); PaymentDTO payment = new PaymentDTO(); payment.BookingOrderId = "1e4199f0-907f-4acc-b886-b12b0323c108"; payment.Price = 100; payment.CustomerId = string.Empty; var sut = new PaymentService(_repo, fakeGateWay.Object, fakeEventBus.Object); //Act var result = await sut.AddAsync(payment); //Assert Guid bookingRef = Guid.Parse(result); result.ShouldBeOfType <string>(); bookingRef.ShouldBeOfType <Guid>(); result.Count().ShouldBe(36); }
public void UpdateMellatPaymentStatus(PaymentDTO payment) { try { SqlCommand cmd1 = new SqlCommand(); cmd1.Connection = conn; cmd1.CommandType = CommandType.StoredProcedure; cmd1.CommandText = "Adobe.SP_UpdateMellatPaymentStatus"; cmd1.Parameters.AddWithValue("@OrderID", payment.OrderId); //cmd1.Parameters.AddWithValue("@RefID", payment.ReqKey); //cmd1.Parameters.AddWithValue("@Status", payment.AppStatus); //cmd1.Parameters.AddWithValue("@SaleRef", payment.TraceNumber); //cmd1.Parameters.AddWithValue("@ResCode", payment.Result); conn.Open(); cmd1.ExecuteNonQuery(); conn.Close(); } catch (Exception) { throw; } }
public async Task <ActionResult <DPayment> > PostNewDPayment(PaymentDTO dto) { try { var newPayment = new DPayment() { CustomerId = dto.CustomerId, OrderId = dto.OrderId, TotalAmount = dto.Amount }; _context.Payment.Add(newPayment); await _context.SaveChangesAsync(); var paymentID = newPayment.Id; return(Ok(new { id = paymentID })); } catch (Exception ex) { return(NotFound()); } }
public async Task <string> AddAsync(PaymentDTO payment) { var resultFromPayment = _gateway.PaymentProcess(payment); var paymentEntity = new Payments { BookingOrderId = payment.BookingOrderId, CustomerId = payment.CustomerId, Price = payment.Price, PaymentStatus = PaymetStatus.Completed //This part is based on the result returned from external gateway }; var paymentRef = await _context.AddAsync(paymentEntity); //Publish the event here //Create Integration Event var paymentProcessedEvent = new PaymentProcessedIntegrationEvent(paymentRef.PaymentsId, paymentRef.BookingOrderId, paymentRef.CustomerId, (int)paymentEntity.PaymentStatus); _eventBus.Publish(paymentProcessedEvent); return(paymentRef.PaymentsId); }
public bool ObjectExists(PaymentDTO payment) { var objectExists = false; //var iDbContext = DbContextUtil.GetDbContextInstance(); //try //{ // var catRepository = new Repository<PaymentDTO>(iDbContext); // var catExists = catRepository.GetAll() // .FirstOrDefault(bp => (bp.DisplayName == payment.DisplayName || // (!string.IsNullOrEmpty(bp.TinNumber) && bp.TinNumber == payment.TinNumber)) && // bp.Id != payment.Id); // if (catExists != null) // objectExists = true; //} //finally //{ // iDbContext.Dispose(); //} return(objectExists); }
public void UpdateTuitionPayment(PaymentDTO payment) { PaymentDAO.UpdateTuitionPayment(payment); }
public void UpdateMellatRquestPayment(PaymentDTO payment) { PaymentRequestDAO PaymentDAO = new PaymentRequestDAO(); PaymentDAO.UpdateMellatPayment(payment); }
public void UpdateMellatPayment(PaymentDTO payment) { PaymentDAO.UpdateMellatPayment(payment); }
public async Task <IActionResult> Get(string id) { PaymentDTO paymentDto = await _paymentDS.Get(id); return(Ok(paymentDto)); }
private byte[] PrepareRequestBody(PaymentDTO model) { string queryModel = new QueryConverter().Serialize(model); return Encoding.UTF8.GetBytes(queryModel); }
public async Task <int> AddPayment(PaymentDTO payment) { return(await _financialService.AddPayment(payment)); }
public string PostPayments(TransactionHeaderDTO transaction2, PaymentDTO payment2, PaymentModel paymentModel, CheckDTO selectedCheck) { string stat = string.Empty; try { var transaction = _transactionRepository .Query() .Include(t => t.Warehouse, t => t.BusinessPartner, t => t.TransactionLines, t => t.Payments) .Filter(t => t.Id == transaction2.Id) .Get() .FirstOrDefault(); if (transaction == null) { return("Empty transaction"); } var bp = _businessPartnerRepository .Query() .Filter(b => b.Id == transaction.BusinessPartnerId) .Get() .FirstOrDefault(); if (bp == null) { return("No Business Partner"); } PaymentDTO cashPayment = null; if (paymentModel.Amount > 0) //always cash payment { #region Cash Payment cashPayment = GetNewPayment(transaction, paymentModel.PaymentDate); if (cashPayment != null) { cashPayment.PaymentMethod = PaymentMethods.Cash; cashPayment.Status = PaymentStatus.NotDeposited; cashPayment.Amount = paymentModel.Amount - paymentModel.Change; if (!Singleton.Setting.HandleBankTransaction) { cashPayment.Status = PaymentStatus.Cleared; } _paymentRepository.Insert(cashPayment); if (payment2 != null) { bp.TotalCredits = bp.TotalCredits - cashPayment.Amount; if (payment2.Amount - cashPayment.Amount == 0) { bp.TotalNoOfCreditTransactions = bp.TotalNoOfCreditTransactions - 1; } _businessPartnerRepository.InsertUpdate(bp); } } #endregion } //Commented because is always cash payment if (paymentModel.Amount < paymentModel.AmountRequired) { if (selectedCheck != null && selectedCheck.CheckNumber.Length > 0) { #region Check Payment var checkPayment = GetNewPayment(transaction, paymentModel.PaymentDate); if (checkPayment != null) { checkPayment.Check = selectedCheck; checkPayment.PaymentMethod = PaymentMethods.Check; checkPayment.Amount = paymentModel.AmountRequired - paymentModel.Amount; //piList.Add(checkPayment); _paymentRepository.Insert(checkPayment); if (payment2 == null) { bp.TotalCredits = bp.TotalCredits + checkPayment.Amount; bp.TotalNoOfCreditTransactions = bp.TotalNoOfCreditTransactions + 1; _businessPartnerRepository.InsertUpdate(bp); } } #endregion } else if (transaction.BusinessPartner.AllowCreditsWithoutCheck) { #region Credit Payment var creditPayment = GetNewPayment(transaction, paymentModel.PaymentDate); if (creditPayment != null) { creditPayment.PaymentMethod = PaymentMethods.Credit; creditPayment.DueDate = DateTime.Now.AddDays(transaction.BusinessPartner.PaymentTerm); creditPayment.Amount = paymentModel.AmountRequired - paymentModel.Amount; _paymentRepository.Insert(creditPayment); if (payment2 == null) { bp.TotalCredits = bp.TotalCredits + creditPayment.Amount; bp.TotalNoOfCreditTransactions = bp.TotalNoOfCreditTransactions + 1; _businessPartnerRepository.InsertUpdate(bp); } } #endregion } else { stat = "Got problem while getting check detail, Can't take credit or problem on check .."; if (cashPayment != null) { _paymentRepository.Delete(cashPayment); } } } if (string.IsNullOrEmpty(stat)) { if (payment2 == null) { // Update Inventory var iqList = new ItemQuantityService(_iDbContext).UpdateInventoryByTransaction(transaction); foreach (var itemQuantityDTO in iqList) { _itemsQuantityRepository.InsertUpdate(itemQuantityDTO); } //Update transaction transaction.Status = TransactionStatus.Posted; _transactionRepository.InsertUpdate(transaction); _unitOfWork.Commit(); } else { var payment = _paymentRepository.FindById(payment2.Id); payment.Enabled = false; _paymentRepository.Update(payment); _unitOfWork.Commit(); } } } catch (Exception exception) { stat = exception.Message; } finally { _iDbContext.Dispose(); } return(stat); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { try { PaymentDTO pay = new PaymentDTO(); pay.ReqKey = Request.Params["RefId"]; if (Request.Params["lbl_SaleOrderID"] != "") { lbl_SaleOrderID.Text = Request.Params["SaleOrderId"]; pay.OrderId = long.Parse(lbl_SaleOrderID.Text); } if (Request.Params["SaleReferenceId"] != "") { pay.TraceNumber = long.Parse(Request.Params["SaleReferenceId"]); lbl_SaleReferenceIdLabel.Text = pay.TraceNumber.ToString(); } pay.Result = int.Parse(Request.Params["ResCode"]); if (pay.Result.ToString() == "0") { if (VerifyPayment(pay) == "0") { PaymentDTO payinfo = bmp.GetRequestPaymentByRefID(pay.ReqKey); lbl_Stcode.Text = payinfo.stcode; Session.Timeout = 20; Session[sessionNames.userID_StudentOstad] = lbl_Stcode.Text; pay.stcode = payinfo.stcode; pay.AppStatus = "COMMIT"; //bmp.UpdateMellatRquestPayment(pay); lbl_ResCode.Text = "ﺗﺮﺍﻛﻨﺶ ﺑﺎ ﻣﻮﻓﻘﻴﺖ ﺍﻧﺠﺎﻡ ﺷﺪ"; } else { lbl_ResCode.Text = ".وجه مبلغ به حساب واحد دانشگاهی واریز نشد چنانچه پس از 72 ساعت آینده به حساب شما برگشت داده نشد مجددا پرداخت نمایید "; pay.AppStatus = "ROLLBACK"; //bmp.UpdateMellatRquestPayment(pay); } } else { pay.AppStatus = "FAILED"; } if (!string.IsNullOrEmpty(pay.AppStatus) && pay.AppStatus != "COMMIT") { var paymnetStatus = Session["paymentStatus"] as List <GovahiRequest>; if ( paymnetStatus != null && paymnetStatus.Any(x => x.HasBeenPaid == false && x.AmountTrans == 140000)) { if (paymnetStatus.Any(x => x.HasBeenPaid)) { paymnetStatus.ForEach(x => { if (x.HasBeenPaid) { GovahiBusiness.UpdateRollBackingPastPayment(x.Number, x.trasferRequestID, paymnetStatus.FirstOrDefault(y => y.AmountTrans == 140000).Number); } }); } } } bmp.UpdateMellatRquestPayment(pay); lbl_ResCode.Text = bmp.bmp_PaymentResult(pay.Result); } catch (Exception ex) { Response.Redirect("~/Pages/ControlErrors.aspx?id=" + ex.Message); } } }
public Task <PaymentDTO> UpdateAsync(PaymentDTO payment) { throw new NotImplementedException(); }
private void AddPayments() { if (SelectedRentalPayment.Payments.Count > 0) { SelectedRentalPayment.Payments = new List <PaymentDTO>(); } var rentPayment = new PaymentDTO { Type = PaymentTypes.Rent, RentalPayment = SelectedRentalPayment, PaymentDate = SelectedRentalPayment.PaymentDate, ReceiptDate = SelectedRentalPayment.ReceiptDate, Amount = (decimal)(SelectedRentalPayment.PaymentPeriod * SelectedRentalPayment.RentAmount) / (decimal)1.15, ReceiptNumber = SelectedRentalPayment.ReceiptNumber, ReceiptType = SelectedRentalPayment.ReceiptType, Reason = SelectedRentalContrat.Room.Number + " Rent From " + SelectedRentalPayment.StartDateString + " To " + SelectedRentalPayment.EndDateString + " (" + "ከ" + SelectedRentalPayment.StartDateStringAmharic + "-" + "" + SelectedRentalPayment.EndDateStringAmharic + ")", UnitOfMeasure = "Month", UnitQty = SelectedRentalPayment.PaymentPeriod, EachPrice = SelectedRentalPayment.RentAmount / (decimal)1.15, PaymentMethod = PaymentMethods.Cash }; SelectedRentalPayment.Payments.Add(rentPayment); if (SelectedRentalPayment.Penality != null && SelectedRentalPayment.Penality > 0) { var overdueMonths = CommonUtility.GetMonthsFromDays(LastRentalPayment.EndDate, SelectedRentalPayment.PaymentDate); var penalityPayment = new PaymentDTO { Type = PaymentTypes.Penality, RentalPayment = SelectedRentalPayment, PaymentDate = SelectedRentalPayment.PaymentDate, ReceiptDate = SelectedRentalPayment.ReceiptDate, Amount = (decimal)SelectedRentalPayment.Penality / (decimal)1.15, ReceiptNumber = SelectedRentalPayment.ReceiptNumber, ReceiptType = SelectedRentalPayment.ReceiptType, Reason = "Penality", UnitOfMeasure = "", UnitQty = overdueMonths, EachPrice = SelectedRentalPayment.RentAmount * (decimal)0.1 / (decimal)1.15, PaymentMethod = PaymentMethods.Cash }; SelectedRentalPayment.Payments.Add(penalityPayment); } if (SelectedRentalPayment.ExtraPaymentAmount != null && SelectedRentalPayment.ExtraPaymentAmount > 0) { var extraPenalityPayment = new PaymentDTO { Type = PaymentTypes.Penality, RentalPayment = SelectedRentalPayment, PaymentDate = SelectedRentalPayment.PaymentDate, ReceiptDate = SelectedRentalPayment.ReceiptDate, Amount = (decimal)SelectedRentalPayment.ExtraPaymentAmount / (decimal)1.15, ReceiptNumber = SelectedRentalPayment.ReceiptNumber, ReceiptType = SelectedRentalPayment.ReceiptType, Reason = "Extra Penality", UnitOfMeasure = "", UnitQty = 1, EachPrice = SelectedRentalPayment.ExtraPaymentAmount / (decimal)1.15, PaymentMethod = PaymentMethods.Cash }; SelectedRentalPayment.Payments.Add(extraPenalityPayment); } if (SelectedRentalPayment.AdditionalDays != null && SelectedRentalPayment.AdditionalDays > 0) { var additionalDaysPenality = new PaymentDTO { Type = PaymentTypes.Rent, RentalPayment = SelectedRentalPayment, PaymentDate = SelectedRentalPayment.PaymentDate, ReceiptDate = SelectedRentalPayment.ReceiptDate, Amount = (decimal)(((decimal)SelectedRentalPayment.AdditionalDays / 30) * SelectedRentalPayment.RentAmount) / (decimal)1.15, ReceiptNumber = SelectedRentalPayment.ReceiptNumber, ReceiptType = SelectedRentalPayment.ReceiptType, Reason = "Extra Days Rent", UnitOfMeasure = "Day", UnitQty = SelectedRentalPayment.AdditionalDays, EachPrice = (SelectedRentalPayment.RentAmount / 30) / (decimal)1.15, PaymentMethod = PaymentMethods.Cash }; SelectedRentalPayment.Payments.Add(additionalDaysPenality); } if (SelectedRentalPayment.ServicePayment != null) { var additionalServicePayment = new PaymentDTO { Type = PaymentTypes.Service, RentalPayment = SelectedRentalPayment, PaymentDate = SelectedRentalPayment.PaymentDate, ReceiptDate = SelectedRentalPayment.ReceiptDate, Amount = (decimal) (SelectedRentalPayment.ServicePayment.PaymentPeriod * SelectedRentalPayment.ServiceAmount) / (decimal)1.15, ReceiptNumber = SelectedRentalPayment.ReceiptNumber, ReceiptType = SelectedRentalPayment.ReceiptType, Reason = SelectedRentalContrat.Room.Number + " For Service From " + SelectedRentalPayment.ServicePayment.StartDateString + " To " + SelectedRentalPayment.ServicePayment.EndDateString + " (" + "ከ" + SelectedRentalPayment.ServicePayment.StartDateStringAmharic + "-" + "" + SelectedRentalPayment.ServicePayment.EndDateStringAmharic + ")", UnitOfMeasure = "Month", UnitQty = SelectedRentalPayment.ServicePayment.PaymentPeriod, EachPrice = SelectedRentalPayment.ServiceAmount / (decimal)1.15, PaymentMethod = PaymentMethods.Cash }; SelectedRentalPayment.Payments.Add(additionalServicePayment); } }
public IHttpActionResult AddPayment([FromBody] PaymentDTO Payment) { return(Ok(PaymentFunction.AddPayment(Payment))); }
protected void grd_GovahiRequestState_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { var cmnb = new CommonBusiness(); try { if (e.CommandName == "EditEraeBe") { var txtEditEraeBe = e.Item.FindControl("txt_EditEraeBe") as TextBox; if (txtEditEraeBe != null) { GovahiBusiness.UpdateEraeBe(txtEditEraeBe.Text, int.Parse(e.CommandArgument.ToString())); } business.UpdateStudentRequestLogID(Session[sessionNames.userID_StudentOstad].ToString(), 6, 3, int.Parse(e.CommandArgument.ToString())); GovahiBusiness.UpdateStudentPOstNumber(Session[sessionNames.userID_StudentOstad].ToString(), "", 3, int.Parse(e.CommandArgument.ToString())); cmnb.InsertIntoStudentLog(Session[sessionNames.userID_StudentOstad].ToString(), DateTime.Now.ToShortTimeString(), int.Parse(Session[sessionNames.appID_StudentOstad].ToString()), 19, "ویرایش محل ارائه"); var dtgo = GovahiBusiness.GetGovahiStatus(Session[sessionNames.userID_StudentOstad].ToString()); if (dtgo.Rows.Count > 0) { grd_GovahiRequestState.Visible = true; grd_GovahiRequestState.DataSource = dtgo; grd_GovahiRequestState.DataBind(); } } if (e.CommandName == "pay") { var dtbedehi = GovahiBusiness.GetBedehkar(Session[sessionNames.userID_StudentOstad].ToString()); var dts = GovahiBusiness.GetStRegisterd(Session[sessionNames.userID_StudentOstad].ToString()); var bedehi = Convert.ToDouble((dtbedehi.Rows[0]["bedehi"].ToString())); var dtmojazgovahi = GovahiBusiness.GetMojazGovahi(Session[sessionNames.userID_StudentOstad].ToString()); if (!GovahiBusiness.CanPay(Session[sessionNames.userID_StudentOstad].ToString())) { rwm_Validations.RadAlert("درخواست شما برای ترم کنونی نمی باشد لطفا درخواست ها رو حذف نمایید و مجددادرخواستی ثبت نمایید", 600, 100, "خطا", null); return; } if (dtmojazgovahi.Rows.Count == 0 && bedehi > 0) { rwm_Validations.RadAlert("به علت بدهکاری درخواست گواهی اشتغال به تحصیل مقدور نمی باشد ", 420, 100, "خطا", null); return; } else if (dts.Rows.Count == 0) { rwm_Validations.RadAlert("دانشجو در این ترم ثبت نام نکرده است", 300, 100, "خطا", null); return; } long orderid;//= new bmp_PaymentBusiness().GenerateOrderId(); SetDefaultDateTime(); var pay = new PaymentDTO(); var bmp = new bmp_PaymentBusiness(); var dt = GovahiBusiness.GetAmountForPay(Session[sessionNames.userID_StudentOstad].ToString()); grd_pay.DataSource = dt; pay.Amount = int.Parse(dt.Rows[0]["mablagh"].ToString()); pay.PayDate = PayDate + "_" + PayTime; pay.stcode = Session[sessionNames.userID_StudentOstad].ToString(); pay.bankId = 2; pay.tterm = ConfigurationManager.AppSettings["Term"]; var result = bmp.pay(pay.Amount, pay.stcode, out orderid, Convert.ToInt32(Session[sessionNames.appID_StudentOstad]), 0); pay.OrderId = orderid; var resultArray = result.Split(','); pay.ReqKey = resultArray[1]; pay.AppStatus = "none"; pay.TraceNumber = 0; pay.Result = -1; pay.PayType = 1; var reqIdArray = Session["ReqID"].ToString().Split(new char[] { ',' }); var payId = Session["PayID"].ToString().Split(new char[] { ',' }); for (var i = 0; i < reqIdArray.Length; i++) { if (i == 0) { pay.RequestId = int.Parse(reqIdArray[i]); GovahiBusiness.UpdatePymentDetail(pay.OrderId, pay.PayDate, int.Parse(payId[i]), 140000, pay.ReqKey); } else { pay.RequestId = int.Parse(reqIdArray[i]); GovahiBusiness.UpdatePymentDetail(pay.OrderId, pay.PayDate, int.Parse(payId[i]), 20000, pay.ReqKey); } } Session["ReqID"] = null; Session["PayID"] = null; if (resultArray[0] == "0") { ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + resultArray[1] + "');</script> ", false); } } if (e.CommandName == "Del") { var deloCommands = e.CommandArgument.ToString().Split(new char[] { ',' }); GovahiBusiness.DeleteGovahiRequest(int.Parse(deloCommands[0]), int.Parse(deloCommands[1])); business.InsertInToStudentLog(Session[sessionNames.userID_StudentOstad].ToString(), DateTime.Now.Date, DateTime.Now.ToShortTimeString(), 1); var dtgo = GovahiBusiness.GetGovahiStatus(Session[sessionNames.userID_StudentOstad].ToString()); if (dtgo.Rows.Count > 0) { grd_GovahiRequestState.Visible = true; grd_GovahiRequestState.DataSource = dtgo; grd_GovahiRequestState.DataBind(); } var dt = GovahiBusiness.GetAmountForPay(Session[sessionNames.userID_StudentOstad].ToString()); grd_pay.DataSource = dt; grd_pay.DataBind(); if (dt.Rows.Count > 0 && (int.Parse(dt.Rows[0]["amount"].ToString())) > 0) { grd_pay.Visible = true; } else { grd_pay.Visible = false; } } } catch (Exception exp) { Response.Write("Error: " + exp.Message); } }
public IHttpActionResult UpdatePayment(PaymentDTO paymentDTO) { paymentService.Update(paymentMapper.Map(paymentDTO)); return(Ok()); }
public void CreateStudentPayment(PaymentDTO payInfo) { PaymentDAO.CreateStudentPayment(payInfo); }
public async Task <PaymentDTO> UpdatePayment(PaymentDTO payment) { return(await _financialService.UpdatePayment(payment)); }
public void CreateRequestStudentPayment(PaymentDTO payInfo) { PaymentRequestDAO PaymentDAO = new PaymentRequestDAO(); PaymentDAO.CreateStudentPayment(payInfo); }
public async Task <IActionResult> ProcessPayment(PaymentDTO model) { if (ModelState.IsValid) { if (model.Amount < 1M) { return(BadRequest(Message.ResponseMessage("Error", errors: new { message = "Amount cannot be less than 1 pound" }))); } if (model.ExpirationDate < DateTime.Today) { return(BadRequest(Message.ResponseMessage("Error", errors: new { message = "Sorry, your card has expired" }))); } var paymentAmount = model.Amount; string id; PaymentModel payment; bool changePaymentStatus; //handling of cheap payments if (paymentAmount < 21M) { do { id = Guid.NewGuid().ToString(); payment = await _cheapPaymentGateway.GetCheapPaymentById(id); } while (payment != null); var CheapPayment = new PaymentModel { PaymentId = id, CreditCardNumber = model.CreditCardNumber, CardHolder = model.CardHolder, ExpirationDate = model.ExpirationDate, SecurityCode = model.SecurityCode, Amount = model.Amount }; try { var result = await _cheapPaymentGateway.AddCheapPayment(CheapPayment); //update the status of the payment PaymentState status; if (result) { var RecentlyAdded = await _cheapPaymentGateway.GetCheapPaymentById(id); status = await _statusRepo.GetStatusByName("success"); RecentlyAdded.PaymentStateId = status.PaymentStateId; //error here changePaymentStatus = await _cheapPaymentGateway.UpdateCheapPayment(RecentlyAdded); if (changePaymentStatus) { paymentCounter = 0; return(Ok(Message.ResponseMessage("Success", data: new { message = $"Payment of {(model.Amount > 1 ? model.Amount + " pounds" : model.Amount + " pound")} was successful" }))); } //if update of status doesn't succeed perform a rollback to 'pending' paymentCounter = 0; status = await _statusRepo.GetStatusByName("failed"); RecentlyAdded.PaymentStateId = status.PaymentStateId; changePaymentStatus = await _cheapPaymentGateway.UpdateCheapPayment(RecentlyAdded); return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't update payment status" }))); } else { return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't make payment of {(model.Amount > 1 ? model.Amount + " pounds" : model.Amount + " pound")}. Try again" }))); } } catch (Exception ex) { return(StatusCode(500, Message.ResponseMessage("Server Error", errors: new { message = ex.Message }))); } } //handling of expensive payments if (paymentAmount >= 21M && paymentAmount <= 500M) { do { id = Guid.NewGuid().ToString(); payment = await _expensivePaymentGateway.GetExpensivePaymentById(id); } while (payment != null); var ExpensivePayment = new PaymentModel { PaymentId = id, CreditCardNumber = model.CreditCardNumber, CardHolder = model.CardHolder, ExpirationDate = model.ExpirationDate, SecurityCode = model.SecurityCode, Amount = model.Amount }; try { var result = await _expensivePaymentGateway.AddExpensivePayment(ExpensivePayment); //update the status of the payment PaymentState status; if (result) { var RecentlyAdded = await _expensivePaymentGateway.GetExpensivePaymentById(id); status = await _statusRepo.GetStatusByName("success"); RecentlyAdded.PaymentStateId = status.PaymentStateId; changePaymentStatus = await _expensivePaymentGateway.UpdateExpensivePayment(RecentlyAdded); if (changePaymentStatus) { paymentCounter = 0; return(Ok(Message.ResponseMessage("Success", data: new { message = $"Payment of {model.Amount} pounds was successful" }))); } //if update of status doesn't succeed perform a rollback to 'pending' paymentCounter = 0; status = await _statusRepo.GetStatusByName("failed"); RecentlyAdded.PaymentStateId = status.PaymentStateId; changePaymentStatus = await _expensivePaymentGateway.UpdateExpensivePayment(RecentlyAdded); return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't update payment status" }))); } else { return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't make payment of {(model.Amount > 1 ? model.Amount + " pounds" : model.Amount + " pound")}. Try again" }))); } } catch (Exception ex) { //Execute the cheapPaymentGateway once if expensive payment fails if (paymentCounter < 1) { var tryCheapPayment = await _cheapPaymentGateway.AddCheapPayment(ExpensivePayment); if (tryCheapPayment) { paymentCounter++; } return(Ok(Message.ResponseMessage("Success", data: new { message = $"Payment of {model.Amount} pounds was successful" }))); } return(StatusCode(500, Message.ResponseMessage("Server Error", errors: new { message = ex.Message }))); } } if (paymentAmount > 500) { //handling of premium payments premiumPay: do { id = Guid.NewGuid().ToString(); payment = await _expensivePaymentGateway.GetExpensivePaymentById(id); } while (payment != null); var PremiumPayment = new PaymentModel { PaymentId = id, CreditCardNumber = model.CreditCardNumber, CardHolder = model.CardHolder, ExpirationDate = model.ExpirationDate, SecurityCode = model.SecurityCode, Amount = model.Amount }; PaymentState status; try { var result = await _premiumPaymentGateway.AddPremiumPayment(PremiumPayment); //update the status of the payment if (result) { var RecentlyAdded = await _premiumPaymentGateway.GetPremiumPaymentById(id); status = await _statusRepo.GetStatusByName("success"); RecentlyAdded.PaymentStateId = status.PaymentStateId; changePaymentStatus = await _premiumPaymentGateway.UpdatePremiumPayment(RecentlyAdded); if (changePaymentStatus) { paymentCounter = 0; return(Ok(Message.ResponseMessage("Success", data: new { message = $"Payment of {model.Amount} pounds was successful" }))); } //if update of status doesn't succeed perform a rollback to 'pending' paymentCounter = 0; status = await _statusRepo.GetStatusByName("failed"); RecentlyAdded.PaymentStateId = status.PaymentStateId; changePaymentStatus = await _premiumPaymentGateway.UpdatePremiumPayment(RecentlyAdded); return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't update payment status" }))); } else { return(StatusCode(500, Message.ResponseMessage("Error", errors: new { message = $"Couldn't make payment of {(model.Amount > 1 ? model.Amount + " pounds" : model.Amount + " pound")}. Try again" }))); } } catch (Exception ex) { while (paymentCounter < 3) { paymentCounter++; goto premiumPay; } return(StatusCode(500, Message.ResponseMessage("Server Error", errors: new { message = ex.Message }))); } } } return(BadRequest(Message.ResponseMessage("Error", errors: new { message = ModelState }))); }
public async Task <ProcessPaymentResponse> ProcessNewPayment(PaymentDTO payment) { try { //validate request // 1. validate card number by calling the ValidateCardNumberClass if (ValidateCardNumber.IsCardNumberValid(ValidateCardNumber.RemoveSpaceAndAlphaInCardNumber(payment.CreditCardNumber))) { return new ProcessPaymentResponse { Status = false, Message = "Invalid card number", ResponseType = ResponseType.badRequest } } ; if (string.IsNullOrEmpty(payment.CardHolder)) { return new ProcessPaymentResponse { Status = false, Message = "Provide card holder name", ResponseType = ResponseType.badRequest } } ; if (payment.Amount <= 0) { return new ProcessPaymentResponse { Status = false, Message = "Provide a positive amount", ResponseType = ResponseType.badRequest } } ; if (ValidateCardNumber.RemoveSpaceAndAlphaInCardNumber(payment.SecurityCode).Length != 3) { return new ProcessPaymentResponse { Status = false, Message = "Provide a valid security code", ResponseType = ResponseType.badRequest } } ; if (DateTime.Now.Date > payment.ExpirationDate.Date) { return new ProcessPaymentResponse { Status = false, Message = "Card has expired", ResponseType = ResponseType.badRequest } } ; var submitPaymentInfo = await _paymentService.AddPayment(_mapper.Map <Payment>(payment)); if (submitPaymentInfo != null) { var response = false; // Call the -ICheapPaymentGateway(Amount <20) if (payment.Amount < 20) { response = await _cheapPayment.MakePayment(_config.GetSection("CheapServiceURL").Value, payment); } //Call the - IExpensivePaymentGateway(Amount btw 21-500) else if (payment.Amount > 20 && payment.Amount < 500) { response = await _expensivePayment.MakePayment(_config.GetSection("ExpensiveServiceURL").Value, payment); //if failed retry nce with ICheapPaymentGateway if (!response) { response = await _cheapPayment.MakePayment(_config.GetSection("CheapServiceURL").Value, payment); } } else { //Call the PremiumPaymentService (Amount >500 ) and retry 3 times if failed var retryCount = 0; while (!response && retryCount < 3) { response = await _cheapPayment.MakePayment(_config.GetSection("PremiumServiceURL").Value, payment); } } if (response) { await _paymentStatusService.UpdatePaymentStatus(submitPaymentInfo.PaymentId, "processed"); return(new ProcessPaymentResponse { Status = response, Message = "processed", ResponseType = ResponseType.badRequest }); } else { await _paymentStatusService.UpdatePaymentStatus(submitPaymentInfo.PaymentId, "processed"); return(new ProcessPaymentResponse { Status = response, Message = "failed", ResponseType = ResponseType.badRequest }); } } else { return(new ProcessPaymentResponse { Message = "Internal server error", Status = false, ResponseType = ResponseType.internalServerError }); } } catch (Exception ex) { return(new ProcessPaymentResponse { Message = "Internal server error", Status = false, ResponseType = ResponseType.internalServerError }); } }