예제 #1
0
        public async Task <string> UploadTransaction(string hash, DateTime lastTrnxDate)
        {
            var trnxs = _ctx.Transactions.Where(x => x.Status == EnumType.Pending && DateTime.Compare(x.CreationDate, lastTrnxDate) <= 0).ToList();

            //trnxs = trnxs.Where(x => DateTime.Compare(x.CreationDate, lastTrnxDate) <= 0).ToList();
            foreach (var trn in trnxs)
            {
                trn.Status = EnumType.Success;
            }

            var mineTrnx = new MineTransaction();

            mineTrnx.Id                 = new Guid();
            mineTrnx.CreationDate       = DateTime.UtcNow;
            mineTrnx.GasFee             = 0;
            mineTrnx.LastTransactinTime = lastTrnxDate;
            mineTrnx.totalCoinFee       = 0;
            mineTrnx.TotalFee           = 0;
            mineTrnx.txHash             = hash;

            _ctx.MineTransactions.Add(mineTrnx);
            await _ctx.SaveChangesAsync();

            return("Transactions Uplooaded..!");
        }
예제 #2
0
        private void AddMineTransaction(PushResp result, string json, int trnxCount, decimal totalCoinFee = 0)
        {
            var mineTrnx = new MineTransaction();

            mineTrnx.Id                 = new Guid();
            mineTrnx.CreationDate       = DateTime.UtcNow;
            mineTrnx.GasFee             = Convert.ToUInt64(result.GasPrice.Hex, 16);
            mineTrnx.LastTransactinTime = DateTime.Now;      //trnxs.Last().CreationDate;
            mineTrnx.totalCoinFee       = totalCoinFee;      //trnxs.Sum(x => x.FeeInCoinAmount);
            mineTrnx.TotalFee           = Convert.ToUInt64(result.GasLimit.Hex, 16);
            mineTrnx.txHash             = result.Hash;

            mineTrnx.StatusType       = totalCoinFee == 0 ? EnumType.Buy : EnumType.Transfer;
            mineTrnx.TransactionCount = trnxCount;
            mineTrnx.JsonTransactions = json;
            mineTrnx.Nonce            = result.Nonce;

            _ctx.MineTransactions.Add(mineTrnx);
        }