Пример #1
0
        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);
        }
Пример #2
0
        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)));
        }
Пример #4
0
        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));
            }
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
            }
        }