public async Task <JsonResult> ProcesTransaction(TransactionLoadTestModel model) { TransactionModel transactionModel = new TransactionModel(); model.Partners = (await _partnerService.GetAllActivePartners()) .Select(x => new SelectListItem() { Text = x.Name, Value = x.Id.ToString() }).ToList(); if (ModelState.IsValid) { var posassignments = await _posService.GetAllPosAssignment(model.PartnerId, model.NumberOfTerminals); var merchantId = posassignments.Select(x => x.MerchantId).Distinct().ToList(); var merchants = await _partnerService.GetAllMerchant(model.PartnerId, merchantId); var posUsers = await _posService.GetAllPosUsers(model.PartnerId, merchantId); var posunitId = posassignments.Select(x => x.POSId).ToList(); var posUnits = await _posService.GetAllPosUnit(model.PartnerId, posunitId); var products = await _productService.GetAllProducts(model.PartnerId); var productassignments = await _productService.GetAgentProductAssignment(model.PartnerId, merchantId); transactionModel.PosAssignments = posassignments; transactionModel.Merchants = merchants; transactionModel.PosUnits = posUnits; transactionModel.PosUsers = posUsers; transactionModel.ProductAgentAssignments = productassignments; transactionModel.Products = products; transactionModel.Request = model; transactionModel.URL = GetBaseUrl(); transactionModel.TestUtilityHeader = new TestUtilityHeader() { Date = DateTime.UtcNow, NumberOfTerminals = transactionModel.Request.NumberOfTerminals, NumberOfTransactionPerTerminal = transactionModel.Request.NumberOfTransactionPerTerminal, PartnerId = transactionModel.Request.PartnerId, StartTime = DateTime.UtcNow, ProcessTypeId = 1, }; transactionModel.TestUtilityHeader = await RegisterTransaction(transactionModel.TestUtilityHeader, transactionModel.URL); if (transactionModel.TestUtilityHeader.Id != 0) { TransactionLoadTest(transactionModel); } else { return(Json(new { status = 0, message = "Batch transaction unable to create", data = string.Empty })); } } return(Json(new { status = 1, message = "Transaction processing with batch " + transactionModel.TestUtilityHeader.Batch, data = string.Empty })); }