public transaction convertTransaction(TransactionRequestDto dtos) { transaction transaction = new transaction(); transaction.exchange_store_id = dtos.exchangeStoreId; transaction.store_id = dtos.storeId; transaction.time = stampConvert.convertTimeStamp(dtos.time); transaction.staff_id = dtos.staffId; transaction.transaction_type_id = dtos.transactionTypeId; transaction.status_id = dtos.statusId; foreach (var dto in dtos.detail) { transaction_detail detail = new transaction_detail(); detail.trans_id = dtos.id; detail.material_id = int.Parse(dto.material.id); detail.amount = dto.materialAmount; db.transaction_detail.Add(detail); String[] list = new string[] { "EC", "EX01", "EX02", "IM02" }; if (dtos.transactionTypeId == "EC") { store_material storeMaterial = db.store_material.Where(s => s.store_id == dtos.storeId && s.material_id == detail.material_id).FirstOrDefault(); storeMaterial.amount = storeMaterial.amount - detail.amount; db.Entry(storeMaterial).State = EntityState.Modified; db.SaveChanges(); } } return(transaction); }
public void Post([FromBody] TransactionRequestDto dto) { lock (_context) { var transaction = new Transaction { Hash = dto.Hash, TransactionDate = dto.TransactionDate, GasAmount = dto.GasAmount, MoneyAmount = dto.MoneyAmount, AddDate = DateTime.Now }; var foundTransaction = _context.Transactions.FirstOrDefault(t => t.Hash == dto.Hash); if (foundTransaction != null) { foundTransaction.TransactionDate = dto.TransactionDate; foundTransaction.GasAmount = dto.GasAmount; foundTransaction.MoneyAmount = dto.MoneyAmount; foundTransaction.UpdateDate = DateTime.Now; transaction = foundTransaction; } var block = _context.Blocks.FirstOrDefault(b => b.Hash == dto.BlockHash); transaction.Block = block; if (block?.Transactions.All(t => t.Hash != transaction.Hash) == true) { block.UpdateDate = DateTime.Now; block.Transactions.Add(transaction); } var sourceClient = _context.Clients .FirstOrDefault(m => m.Hash == dto.SourceClientHash); var destinationClient = _context.Clients .FirstOrDefault(m => m.Hash == dto.DestinationClientHash); transaction.SourceClient = sourceClient; transaction.DestinationClient = destinationClient; if (sourceClient?.Transactions.All(t => t.Hash != transaction.Hash) == true) { sourceClient.UpdateDate = DateTime.Now; sourceClient.Transactions.Add(transaction); } if (destinationClient?.Transactions.All(t => t.Hash != transaction.Hash) == true) { destinationClient.UpdateDate = DateTime.Now; destinationClient.Transactions.Add(transaction); } if (_context.Transactions.All(t => t.Hash != transaction.Hash)) { _context.Transactions.Add(transaction); } } }
public IActionResult CreateNewTransation([FromBody] TransactionRequestDto transaction) { if (!ModelState.IsValid) { return(BadRequest(transaction)); } var transactionRequest = _mapper.Map <Transaction>(transaction); return(Ok(_transactionService.CreateNewTransaction(transactionRequest))); }
public async Task <IActionResult> GetTransaction([FromQuery] TransactionRequestDto request) { var path = string.Format("v1/transaction?{0}", request.GetQueryString().Replace("fromdate", "from.timestamp").Replace("todate", "to.timestamp")); var result = await ACBOpenApi.Call <dynamic>(Request.HttpContext, MethodBase.GET, path, null, null); if (result.Data != null) { return(Ok(result)); } else { return(BadRequest(result)); } }
public dynamic Posttransaction([FromBody] TransactionRequestDto transactionDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { transactionRepository.addtransaction(transactionDto); } catch (Exception e) { return(BadRequest(e.Message)); } return(Ok(true)); }
public IActionResult ProcessTransaction(TransactionRequestDto transaction) { switch (transaction.Amount) { case 500: return(StatusCode((int)HttpStatusCode.InternalServerError, new { Message = "Unkown Error!" })); case 717: return(StatusCode((int)HttpStatusCode.BadRequest, new TransactionResponseDto { BankTransactionId = Guid.NewGuid(), ErrorCode = "EE717EE", Message = "Restricted card", Status = PaymentStatus.Declined })); case 818: return(StatusCode((int)HttpStatusCode.BadRequest, new TransactionResponseDto { BankTransactionId = Guid.NewGuid(), ErrorCode = "EE818EE", Message = "Insufficient funds", Status = PaymentStatus.Declined })); case 919: return(StatusCode((int)HttpStatusCode.BadRequest, new TransactionResponseDto { BankTransactionId = Guid.NewGuid(), ErrorCode = "EE919EE", Message = "Security violation", Status = PaymentStatus.Declined })); default: return(Ok(new TransactionResponseDto { BankTransactionId = Guid.NewGuid(), Status = PaymentStatus.Approved })); } }
internal void addtransaction(TransactionRequestDto dtos) { //for transaction table Transaction transaction = new Transaction(); transaction.ExchangeStoreId = dtos.exchangeStoreId; transaction.StoreId = dtos.storeId; transaction.Time = stampConvert.convertTimeStamp(dtos.time); transaction.StaffId = dtos.staffId; transaction.TransactionTypeId = dtos.transactionTypeId; transaction.StatusId = dtos.statusId; db.Transaction.Add(transaction); db.SaveChanges(); if (dtos.transactionTypeId == "IM01") { Transaction transa = db.Transaction.FirstOrDefault(s => s.StoreId == transaction.ExchangeStoreId && s.ExchangeStoreId == transaction.StoreId && s.StatusId == "ĐT"); if (transa != null) { transa.StatusId = "HT"; db.Entry(transa).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); } } //for transaction detail table Transaction tran = db.Transaction.Where(s => s.Time == transaction.Time).FirstOrDefault(); foreach (var dto in dtos.detail) { //transaction detail TransactionDetail detail = new TransactionDetail(); detail.TransId = tran.Id; detail.MaterialId = int.Parse(dto.material.id); detail.Amount = dto.materialAmount; detail.Unit = dto.unit; db.TransactionDetail.Add(detail); db.SaveChanges(); //store material String[] list = new string[] { "EC", "EX01", "EX02" }; if (list.Contains(tran.TransactionTypeId)) { StoreMaterial storeMaterial = db.StoreMaterial.First(s => s.StoreId == tran.StoreId && s.MaterialId == detail.MaterialId); storeMaterial.Amount = storeMaterial.Amount - detail.Amount; db.Entry(storeMaterial).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); } else if (dtos.transactionTypeId == "IM01") { StoreMaterial storeMaterial = db.StoreMaterial.FirstOrDefault(s => s.StoreId == dtos.storeId && s.MaterialId == detail.MaterialId); if (storeMaterial != null) { storeMaterial.Amount = storeMaterial.Amount + detail.Amount; db.Entry(storeMaterial).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); } else { StoreMaterial storem = new StoreMaterial(); storem.MaterialId = detail.MaterialId; storem.StoreId = dtos.storeId; storem.Amount = detail.Amount; storem.Unit = detail.Unit; db.StoreMaterial.Add(storem); db.SaveChanges(); } } else if (dtos.transactionTypeId == "IM02") { StoreMaterial storeMaterial = db.StoreMaterial.FirstOrDefault(s => s.StoreId == dtos.storeId && s.MaterialId == detail.MaterialId); if (storeMaterial != null) { storeMaterial.Amount = storeMaterial.Amount + detail.Amount; db.Entry(storeMaterial).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); } else { StoreMaterial storem = new StoreMaterial(); storem.MaterialId = detail.MaterialId; storem.StoreId = dtos.storeId; storem.Amount = detail.Amount; storem.Unit = detail.Unit; db.StoreMaterial.Add(storem); db.SaveChanges(); } } else if (dtos.transactionTypeId == "IMAF") { StoreMaterial storeMaterial = db.StoreMaterial.First(s => s.StoreId == dtos.storeId && s.MaterialId == detail.MaterialId); storeMaterial.Amount = storeMaterial.Amount + detail.Amount; db.Entry(storeMaterial).State = Microsoft.EntityFrameworkCore.EntityState.Modified; db.SaveChanges(); } } if (dtos.transactionTypeId == "EC") { Transaction trans = db.Transaction.Where(s => s.Time == transaction.Time).FirstOrDefault(); TransactionDto dto = GetTransactionDto(trans); Object result = sendCloudMessageAsync(dtos.exchangeStoreId, dto, "Có giao dịch mới", "Có giao dịch mới từ kho " + storeRepository.getSimpleStoreDto(dto.store.id).name); } if (dtos.transactionTypeId == "IM01") { Transaction trans = db.Transaction.Where(s => s.Time == transaction.Time).FirstOrDefault(); TransactionDto dto = GetTransactionDto(trans); Object result = sendCloudMessageAsync(dtos.exchangeStoreId, dto, "Hoàn thành đơn hàng", "hoàn thành đơn hàng tới kho " + storeRepository.getSimpleStoreDto(dto.store.id).name); } }