private IEnumerable <TransactionChartViewModel> GetTransactionsChart() { var transactions = _transactionServices.GetTransactions(); var groupedTransactionsByCategory = _transactionServices.GetGroupedTransactionsByCategory(transactions); var transactionsChartViewModel = _mapper.MapToTransactionsChartViewModel(groupedTransactionsByCategory); return(transactionsChartViewModel); }
public async Task <ActionResult> Compare(List <CsvFileViewModel> csvFiles) { var compareTransactionList = new CompareViewModel(); var selectedCsvFiles = csvFiles.Where(c => c.IsChecked).ToList(); if (selectedCsvFiles == null) { ViewBag.Error = _localizer["EmptySelectedCsvFileError"]; return(View(compareTransactionList)); } if (selectedCsvFiles.Count < 2 || selectedCsvFiles.Count > 4) { ViewBag.Error = _localizer["BadNumberOfCsv"]; return(View(compareTransactionList)); } var transactionsToCompare = new List <TransactionsViewModel>(); foreach (var selectedFile in selectedCsvFiles) { var filePath = GetFullFilePath(selectedFile.FileName); try { var transactions = _transactionServices.GetTransactions(filePath); var groupedTransactions = _transactionServices.GetGroupedTransactionsByCategory(transactions); if (groupedTransactions == null || !groupedTransactions.Any()) { ViewBag.Error = _localizer["EmptyTransactionList"]; return(View(compareTransactionList)); } var transactionViewModels = GetTransactionViewModels(groupedTransactions); transactionViewModels = await AppendMissingCategoryTransactions(transactionViewModels); var transactionsViewModelOrdered = transactionViewModels.OrderBy(t => t.Category.Name.ToString()).AsEnumerable(); transactionsViewModelOrdered = UnsignAmount(transactionsViewModelOrdered); var transactionsViewModel = GetTransactionsViewModel(transactionsViewModelOrdered); transactionsToCompare.Add(transactionsViewModel); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View(compareTransactionList)); } } compareTransactionList.TransactionsToCompare = OrderedTransactionsByDate(transactionsToCompare); CompareToAdjustTransactionColor(compareTransactionList); return(View(compareTransactionList)); }
public void ShouldHaveListOfRegroupedTransactionByCategory() { // Arrange var faker = new Faker(); var csvPath = faker.Random.String2(2); _transactionServices.LoadTransactions(csvPath); const decimal expectedGroupedNAAmount = -2000; var debitTransactions = _transactionServices.GetDebitTransactions(); // Act var transactions = _transactionServices.GetGroupedTransactionsByCategory(debitTransactions); var NATransaction = transactions.FirstOrDefault(t => t.Category.Name.Equals("Courses")); // Assert Assert.Equal(expectedGroupedNAAmount, NATransaction.Amount); }