public IActionResult Post(PaymentRequestVM paymentRequest) { try { if (ModelState.IsValid) { paymentRequest.ExpirationDate = new DateTime(paymentRequest.ExpirationDate.Year, paymentRequest.ExpirationDate.Month, 1); PaymentStatusVM result = service.ProcessPaymentRequest(paymentRequest); if (result.PaymentStatus == Enums.PaymentProcessStatus.processed.ToString()) { return(Ok("Payment is processed")); } else { return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to process payment")); } } else { return(BadRequest("Invalid inputs")); } } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(StatusCode(500, "Internal server error exception raised")); } }
public async Task <WrapperPaymentStatusListVM> Delete(PaymentStatusVM itemTemp) { IEnumerable <PaymentStatus> itemTask = await _repositoryWrapper.PaymentStatus.FindByConditionAsync(x => x.Id == itemTemp.Id && x.FactoryId == itemTemp.FactoryId); var item = itemTask.ToList().FirstOrDefault(); if (item == null) { return(new WrapperPaymentStatusListVM()); } _repositoryWrapper.PaymentStatus.Delete(item); await _repositoryWrapper.PaymentStatus.SaveChangesAsync(); this._utilService.LogInfo("Successful In Deleting Item Cateory"); var dataParam = new GetDataListVM() { FactoryId = itemTemp.FactoryId, PageNumber = 1, PageSize = 10, TotalRows = 0 }; WrapperPaymentStatusListVM data = await GetListPaged(dataParam); return(data); }
public PaymentStatusVM ProcessPayment(PaymentInfo paymentRequest) { PaymentStatusVM paymentStatusVM = new PaymentStatusVM() { PaymentStatus = Enums.PaymentProcessStatus.failed.ToString(), PaymentStatusDatetime = DateTime.Now }; if (paymentRequest != null) { //insert in payment and payment status PaymentStatusInfo oPaymentStatusInfo = new PaymentStatusInfo() { PaymentInfoId = paymentRequest.Id, PaymentStatus = Enums.PaymentProcessStatus.pending.ToString(), PaymentStatusDatetime = DateTime.Now, PaymentInfo = paymentRequest }; unitOfWork.PaymentInfoRepo.Create(paymentRequest); unitOfWork.PaymentStatusInfoRepo.Create(oPaymentStatusInfo); unitOfWork.Commit(); if (paymentRequest.Amount % 2 == 0)//if (new Random().Next(1, 11) % 2 == 0) { paymentStatusVM.PaymentStatus = Enums.PaymentProcessStatus.processed.ToString(); } else { paymentStatusVM.PaymentStatus = Enums.PaymentProcessStatus.failed.ToString(); } PaymentStatusInfo oPaymentStatusInfoOK = new PaymentStatusInfo() { PaymentInfoId = paymentRequest.Id, PaymentStatus = paymentStatusVM.PaymentStatus, PaymentStatusDatetime = DateTime.Now, PaymentInfo = paymentRequest }; unitOfWork.PaymentStatusInfoRepo.Create(oPaymentStatusInfoOK); unitOfWork.Commit(); } return(paymentStatusVM); }
public async Task <IActionResult> AddPayment(PaymentStatusVM _payment) { var payment = new PaymentStatusVM { Amount = _payment.Amount, EventDetailsID = _payment.EventDetailsID, ReferenceNumber = _payment.ReferenceNumber, DateOfPayment = DateTime.Now, Remarks = _payment.Remarks }; var response = await mediator.Send(new AddPaymentForEventCommand { MyEventPaymentStatus = payment }); return(Json(response)); }
public async Task <WrapperPaymentStatusListVM> Update(string id, PaymentStatusVM vm) { IEnumerable <PaymentStatus> ItemDB = await _repositoryWrapper.PaymentStatus.FindByConditionAsync(x => x.Id == id && x.FactoryId == vm.FactoryId); var ItemUpdated = _utilService.GetMapper().Map <PaymentStatusVM, PaymentStatus>(vm, ItemDB.ToList().FirstOrDefault()); _repositoryWrapper.PaymentStatus.Update(ItemUpdated); await _repositoryWrapper.PaymentStatus.SaveChangesAsync(); this._utilService.LogInfo("Successful In Updating Item Cateory"); var dataParam = new GetDataListVM() { FactoryId = vm.FactoryId, PageNumber = 1, PageSize = 10, TotalRows = 0 }; WrapperPaymentStatusListVM data = await GetListPaged(dataParam); return(data); }
public async Task <WrapperPaymentStatusListVM> Add(PaymentStatusVM vm) { var entityToAdd = _utilService.GetMapper().Map <PaymentStatusVM, PaymentStatus>(vm); //string uniqueIdTask =await _repositoryWrapper.PaymentStatus.GetUniqueId(); //// Todo need to aandle unique id from db //entityToAdd.UniqueId = uniqueIdTask; entityToAdd = _repositoryWrapper.PaymentStatus.Create(entityToAdd); await _repositoryWrapper.PaymentStatus.SaveChangesAsync(); this._utilService.LogInfo("Successful In saving Item Category"); var dataParam = new GetDataListVM() { FactoryId = vm.FactoryId, PageNumber = 1, PageSize = 10, TotalRows = 0 }; WrapperPaymentStatusListVM data = await GetListPaged(dataParam); return(data); }
public async Task <ActionResult <WrapperPaymentStatusListVM> > DeletePaymentStatus([FromBody] PaymentStatusVM itemVM) { return(await _serviceWrapper.PaymentStatusService.Delete(itemVM)); }
public async Task <ActionResult <WrapperPaymentStatusListVM> > AddPaymentStatus([FromBody] PaymentStatusVM PaymentStatus) { return(await _serviceWrapper.PaymentStatusService.Add(PaymentStatus)); }
public async Task <ActionResult <WrapperPaymentStatusListVM> > UpdatePaymentStatus(string id, [FromBody] PaymentStatusVM PaymentStatus) { return(await _serviceWrapper.PaymentStatusService.Update(id, PaymentStatus)); }
public PaymentStatusVM ProcessPayment(PaymentInfo paymentRequest) { PaymentStatusVM paymentStatusVM = new PaymentStatusVM() { PaymentStatus = Enums.PaymentProcessStatus.failed.ToString(), PaymentStatusDatetime = DateTime.Now }; if (paymentRequest != null) { //insert in payment and payment status PaymentStatusInfo oPaymentStatusInfo = new PaymentStatusInfo() { PaymentInfoId = paymentRequest.Id, PaymentStatus = Enums.PaymentProcessStatus.pending.ToString(), PaymentStatusDatetime = DateTime.Now, PaymentInfo = paymentRequest }; unitOfWork.PaymentInfoRepo.Create(paymentRequest); unitOfWork.PaymentStatusInfoRepo.Create(oPaymentStatusInfo); unitOfWork.Commit(); int tryCount = 3; //even amount will be processed , odd one will be failed //just for test case for (int i = 1; i <= tryCount; i++) //upto retry count { if (paymentRequest.Amount % 2 == 0 && i == tryCount) //if (new Random().Next(1, 11) % 2 == 0) { paymentStatusVM.PaymentStatus = Enums.PaymentProcessStatus.processed.ToString(); } else { paymentStatusVM.PaymentStatus = Enums.PaymentProcessStatus.failed.ToString(); } PaymentStatusInfo oPaymentStatusInfoOK = new PaymentStatusInfo() { PaymentInfoId = paymentRequest.Id, PaymentStatus = paymentStatusVM.PaymentStatus, PaymentStatusDatetime = DateTime.Now, PaymentInfo = paymentRequest }; unitOfWork.PaymentStatusInfoRepo.Create(oPaymentStatusInfoOK); unitOfWork.Commit(); if (paymentStatusVM.PaymentStatus == Enums.PaymentProcessStatus.processed.ToString()) { break; } else { System.Threading.Thread.Sleep(500); } } } return(paymentStatusVM); }