public async Task <bool> OrderIdIsUnique(MerchantInfoResult merchantInfoResult, String orderId) { try { var dbPara = new DynamicParameters(); dbPara.Add("newOrderId", Convert.ToInt64(orderId)); dbPara.Add("storename", merchantInfoResult.StoreName); dbPara.Add("mid", !string.IsNullOrWhiteSpace(merchantInfoResult.Mid) ? merchantInfoResult.Mid : merchantInfoResult.MerchantNumber); dbPara.Add("tid", merchantInfoResult.Tid); var result = (await Task.FromResult(_repository.RunQuery <dynamic>(_query.GetOrderIdFoundCount, dbPara)).Result); return(result); } catch (Exception ex) { throw ex; } }
public async Task <string> ValidateOrderIdAndGenerateNewOrderIdIfNeededAsync(Request request, MerchantInfoResult merchantInfoResult, ErrorModel errorModel) { var validationFailedMsgList = new List <ValidationFailedMsg>(); try { if (!request.OrderIdIsUnique.HasValue) { request.OrderIdIsUnique = false; //Doc indicate default is true if not assigned. } if (!request.AutoGenerateorderId.HasValue) { request.AutoGenerateorderId = true; //Doc indicate default is true if not assigned. } var orderId = request.OrderId; if (string.IsNullOrWhiteSpace(orderId)) { Logger.InformationLog($"In PaymentService.GetCreditCardFromCryptogram, No orderId assigned"); //Use case 1 if (request.AutoGenerateorderId == false) { Logger.InformationLog($"In PaymentService.GetCreditCardFromCryptogram, Failed orderId test. Order ID is required"); //If the user sets this to false it is assumed the web page or clients code behind is setting this. validationFailedMsgList.Add(new ValidationFailedMsg() { Key = "orderId", Message = string.Format("{0} is required.", "Order Id") }); } else { //Auto generate an Order ID orderId = GenerateNewOrderId(); if (request.OrderIdIsUnique.Value) { //Okay lets see if the newOrderId I created is unique! var orderIdIsUnique = true; //if (!orderIdIsUnique) //{ // traceMsg.AppendFormat("Order Id '{0}' is not unique\nRetry, generating new Order Id", // orderId); // //Lets assume heavy volume of work, try one more time // Thread.Sleep(1000); //Release control. // orderId = PaymentHelper.GenerateNewOrderId(); // orderIdIsUnique = GatewayHelper.OrderIdIsUnique(info, orderId, calledFrom); //} //if (!orderIdIsUnique) //{ // traceMsg.AppendFormat("Order Id '{0}' is still not unique\nCanceling generation", // orderId); // //Okay we should have had success by now! // errors.Add(resx.Error_UnableToCreateUniqueOrderId); //} //else //{ // traceMsg.AppendFormat("Order Id '{0}' is unique\n", orderId); //} } } } return("1245"); } catch (Exception ex) { throw ex; } }
public async Task <Process> ValidateInitAndBuildProcessObject(Request request, MerchantInfoResult merchantInfoResult, ErrorModel errorModel, Process process) { try { //var orderId =await new ValidateHelper().ValidateOrderIdAndGenerateNewOrderIdIfNeededAsync(request, merchantInfoResult, errorModel, _processHelper); return(process); } catch (Exception ex) { Logger.ErrorLog($"Exception In PaymentService.GetUpdatedCardDetails. exception={ex.Message}, Trace={ex.StackTrace}"); throw ex; } finally { Logger.InformationLog($"Out PaymentService.GetUpdatedCardDetails, Get Updated Card Details Process End"); } }