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); }
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); } } }