Example #1
0
        public async Task <dynamic> HistoryTransactions(int limit, int?from, string type)
        {
            if (limit > 20 || limit == 0)
            {
                return(new BadRequestObjectResult("limit need to be a in range 0 < limit <=20"));
            }
            if (from < 0)
            {
                return(new BadRequestObjectResult("from need to be a positive number"));
            }
            var steamId = User.GetSteamId();
            var user    = await _repoServiceFactory.UserRepoService.FindAsync(steamId);

            var offers = await _repoServiceFactory.OfferTranascrionRepoService.FindAsync(user, limit, from);

            var listOfTransactions = new List <TransactionBasic>();

            foreach (var offer in offers)
            {
                var partner = await _repoServiceFactory.BotRepoService.FindAsync(offer.BotId);

                var transaction = new TransactionBasic
                {
                    Id           = offer.Id,
                    Accepted     = offer.Accepted,
                    IsDeposit    = offer.IsDeposit,
                    BotId        = partner.Id,
                    SteamOfferId = offer.SteamOfferId,
                    TotalValue   = offer.TotalValue,
                    ItemCount    = await _repoServiceFactory.ItemInOfferTransactionRepoService.GetItemCountInOffer(offer.Id)
                };

                listOfTransactions.Add(transaction);
            }

            return(listOfTransactions);
        }
Example #2
0
        private void GetTransactionsForSelectedAccount()
        {
            HTMLDocument dom   = (HTMLDocument)_transactionsBrowser.Document;
            object       ttObj = dom.getElementById("ctlActivityTable");

            var account = GetSelectedAccount();

            if (ttObj is IHTMLTable transactionsTable)
            {
                foreach (var rowObj in transactionsTable.rows)
                {
                    var row = (IHTMLTableRow)rowObj;
                    if (row.rowIndex == 0)
                    {
                        continue;
                    }

                    var transaction = new TransactionBasic();
                    foreach (var cellObj in row.cells)
                    {
                        var cell = (HTMLTableCell)cellObj;
                        switch (cell.cellIndex)
                        {
                        case 1:
                            var date = cell.innerText.Split('/');
                            transaction.PaymentDate = new DateTime(2000 + Convert.ToInt32(date[2]), Convert.ToInt32(date[1]), Convert.ToInt32(date[0]));
                            break;

                        case 2:
                            Encoding wind1252 = Encoding.GetEncoding(1255);
                            Encoding utf8     = Encoding.UTF8;

                            byte[] wind1252Bytes = wind1252.GetBytes(cell.innerText);
                            byte[] utf8Bytes     = Encoding.Convert(wind1252, utf8, wind1252Bytes);
                            string utf8String    = Encoding.UTF8.GetString(utf8Bytes);
                            transaction.Description = utf8String;
                            break;

                        case 3:
                            transaction.SupplierId = cell.innerText;
                            break;

                        case 4:
                            if (!String.IsNullOrWhiteSpace(cell.innerText))
                            {
                                transaction.Type   = TransactionType.Expense;
                                transaction.Amount = Convert.ToDecimal(cell.innerText);
                            }
                            break;

                        case 5:
                            if (!String.IsNullOrWhiteSpace(cell.innerText))
                            {
                                transaction.Type   = TransactionType.Income;
                                transaction.Amount = Convert.ToDecimal(cell.innerText);
                            }
                            break;

                        case 6:
                            transaction.CurrentBalance = Convert.ToDecimal(cell.innerText);
                            break;

                        default: break;
                        }
                    }

                    account.Transactions.Add(transaction);
                }
            }
        }