private TransactionBank CreateTransaction( decimal transferAmount, Currency transferCurrency, BankAccount fromAccount = null, BankAccount toAccount = null) { var newTransaction = new TransactionBank { SenderAccount = fromAccount, ReceiverAccount = toAccount, TransferAmount = transferAmount, Currency = transferCurrency, CreationDate = DateTime.Now, TransactionNumber = _generationService.GenerateTransactionNumber(), //if there can be only one card - should be refactored BanksCardFrom = (fromAccount != null && fromAccount.BanksCards.Any()) ? fromAccount.BanksCards.First() : null, BanksCardTo = (toAccount != null && toAccount.BanksCards.Any()) ? toAccount.BanksCards.First() : null }; return(newTransaction); }
public ActionResult DeleteConfirmed(int id) { TransactionBank transactionBank = db.TransactionsBank.Find(id); db.TransactionsBank.Remove(transactionBank); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,TypeOperation,Description,DateOperation,Value,Reconciliation")] TransactionBank transactionBank) { if (ModelState.IsValid) { TransactionBank obj = db.TransactionsBank.Where(x => x.Id == transactionBank.Id).FirstOrDefault(); obj.Reconciliation = transactionBank.Reconciliation; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(transactionBank)); }
// GET: TransactionBanks/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TransactionBank transactionBank = db.TransactionsBank.Find(id); if (transactionBank == null) { return(HttpNotFound()); } return(View(transactionBank)); }
private async Task <List <TransactionBank> > GetTransactions(string ofxFilePath, List <TransactionBank> listTransactions) { CheckFileExists(ofxFilePath); StreamReader sr = new StreamReader(ofxFilePath); var objTransaction = OfxConverterToXml.Parser(sr); foreach (var item in objTransaction.Transactions) { var transaction = new TransactionBank() { CheckTransaction = objTransaction.CheckTransaction, IdBank = objTransaction.IdBank, InitDateTransaction = objTransaction.InitDateTransaction, EndtDateTransaction = objTransaction.EndtDateTransaction, Type = item.Type, Date = item.Date, Description = item.Description, Amount = item.Amount, }; if ((await CheckIfTransacationExist(transaction)) == false) { listTransactions.Add(transaction); } } var distincList = listTransactions.Distinct(); if (distincList.Count() <= 0) { return(distincList.ToList()); } else { await _extractBankRepository.AddRange(distincList.ToList()); } return(distincList.ToList()); }
public IActionResult AddTransaction(TransactionBankViewModel viewModel) { var fromCard = _banksCardRepository.GetCardById(viewModel.CardFromId); var toCard = _banksCardRepository.GetCardById(viewModel.CardToId); _transactionService.Transfer(fromCard.BankAccount.Id, toCard.BankAccount.Id, viewModel.TransferAmount); //StringBuilder sb = new StringBuilder(); //var transaction = new TransactionBank() //{ // TransactionNumber = sb.ToString(), // CreationDate = DateTime.Now, // BanksCardFrom = _banksCardRepository.GetCardById(viewModel.CardFromId), // BanksCardTo = _banksCardRepository.GetCardById(viewModel.CardToId), // TransferAmount = viewModel.TransferAmount //}; //_transactionBankRepository.Save(transaction); String startWith = "07"; Random generator = new Random(); String random = generator.Next(0, 999999).ToString("D6"); var transaction = new TransactionBank() { TransactionNumber = startWith + random, Currency = fromCard.Currency, CreationDate = DateTime.Now, BanksCardFrom = _banksCardRepository.GetCardById(viewModel.CardFromId), BanksCardTo = _banksCardRepository.GetCardById(viewModel.CardToId), TransferAmount = viewModel.TransferAmount }; _transactionBankRepository.Save(transaction); // var transaction = _mapper.Map<TransactionBank>(viewModel); // _transactionBankRepository.Save(transaction); return(RedirectToAction("AddCard")); }
/// <summary> /// Convert OFX file in List<TransactionBank> /// </summary> public static List <TransactionBank> toXElement(string pathToOfxFile) { var tags = from line in File.ReadAllLines(pathToOfxFile) where line.Contains("<STMTTRN>") || line.Contains("<TRNTYPE>") || line.Contains("<DTPOSTED>") || line.Contains("<TRNAMT>") || line.Contains("<FITID>") || line.Contains("<CHECKNUM>") || line.Contains("<MEMO>") select line; List <TransactionBank> listResult = new List <TransactionBank>(); TransactionBank obj = new TransactionBank(); foreach (var l in tags) { if (l.IndexOf("<STMTTRN>") != -1) { if (!string.IsNullOrEmpty(obj.Description) && !listResult.Any(x => x.DateOperation == obj.DateOperation && x.Value == obj.Value && x.Description == obj.Description)) { obj.Reconciliation = false; listResult.Add(obj); } obj = new TransactionBank(); continue; } else if (l.IndexOf("<TRNTYPE>") != -1) { if (TypeOperation.CREDIT.ToString() == l.Replace("<TRNTYPE>", "").Trim()) { obj.TypeOperation = (int)TypeOperation.CREDIT; } else if (TypeOperation.DEBIT.ToString() == l.Replace("<TRNTYPE>", "").Trim()) { obj.TypeOperation = (int)TypeOperation.DEBIT; } continue; } else if (l.IndexOf("<DTPOSTED>") != -1) { string date = l.Replace("<DTPOSTED>", "").Substring(0, 8); DateTime dateOperation = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); obj.DateOperation = dateOperation; continue; } else if (l.IndexOf("<TRNAMT>") != -1) { decimal.TryParse(l.Replace("<TRNAMT>", ""), out decimal resultDecimal); obj.Value = resultDecimal; continue; } else if (l.IndexOf("<MEMO>") != -1) { obj.Description = l.Replace("<MEMO>", ""); continue; } } return(listResult); }
private async Task <bool> CheckIfTransacationExist(TransactionBank transactionBanks) { return(await _extractBankRepository.CheckIfExistsTransaction(transactionBanks)); }