private List <int> LoadYearsAvailables() { using OutlayAPIManager apiManager = new OutlayAPIManager(); List <TransactionDTO> allTransactions = apiManager.GetAllTransactions(); List <int> yearsAvailables = allTransactions.Select(x => x.Date.Year) .Distinct() .ToList(); return(yearsAvailables); }
public List <string> TransactionCodes() { List <string> transactionCodesList = null; using (OutlayAPIManager managerAPI = new OutlayAPIManager()) { List <TransactionDTO> transactions = managerAPI.GetAllTransactions(); transactionCodesList = transactions.Select(x => x.DetailTransaction.Code) .Distinct() .ToList(); } return(transactionCodesList ?? new List <string>()); }
public double GetTotalAmount() { OutlayAPIManager apiManager = new OutlayAPIManager(); List <TransactionDTO> allTransactionsList = apiManager.GetAllTransactions(); double totalIncomings = allTransactionsList.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.INCOMING.ToString()) .Select(x => x.Amount) .Sum(); double totalSpenses = allTransactionsList.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.SPENDING.ToString()) .Select(x => x.Amount) .Sum(); double totalAdjust = allTransactionsList.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.ADJUST.ToString()) .Select(x => x.Amount) .Sum(); return(totalIncomings - totalSpenses + totalAdjust); }
private void buttonCalculateSaving_Click(object sender, EventArgs e) { try { using OutlayAPIManager apiManager = new OutlayAPIManager(); List <TransactionView> transacionsList = apiManager.GetAllTransactions() .Select(x => Utilities.CastObject.TransactionToTransactionView(x)) .ToList(); int yearSelected = (int)this.comboBoxYears.SelectedItem; Dictionary <DateKey, string> result = transacionsList.Where(x => x.Date.Year == yearSelected) .GroupBy(x => new DateKey(x.Date.Month, x.Date.Year)) .Select(x => { double totalIncoming = x.Where(y => OutlayDataHelper.GetOutlayType(y.Type) == OutlayDataHelper.OutlayTypesEnum.ADJUST || OutlayDataHelper.GetOutlayType(y.Type) == OutlayDataHelper.OutlayTypesEnum.INCOMING) .Select(x => x.Amount) .Sum(); double totalSpend = x.Where(y => OutlayDataHelper.GetOutlayType(y.Type) == OutlayDataHelper.OutlayTypesEnum.SPENDING) .Select(x => x.Amount) .Sum(); string totalMonthSave = Utilities.Normalizer.SpainFormatAmount((totalIncoming - totalSpend)); return(new { x.Key, totalMonthSave }); }) .ToDictionary(key => key.Key, value => value.totalMonthSave); AddNewSerie(result, yearSelected); } catch (Exception ex) { new DialogManager().ShowDialog(DialogManager.DialogLevel.Exception, ex.Message, this); } }
public ResultInfo SaveBackupAsCsv() { ResultInfo result = new ResultInfo() { IsError = false, Message = "Save succesfully" }; if (Directory.Exists(BackupDirectory)) { try { OutlayAPIManager apiManager = new OutlayAPIManager(); List <TransactionDTO> allTransactions = apiManager.GetAllTransactions(); string csvFile = WriteTransactionToCSV(allTransactions); string fileName = "Backup_" + DateTime.Now.ToString("ddMMyyyy") + ".csv"; using (StreamWriter sw = File.CreateText(BackupDirectory + "\\" + fileName)) { sw.WriteLine(csvFile); } } catch (Exception e) { result.IsError = true; result.Message = e.Message; } } else { result.IsError = true; result.Message = $"Directory: {BackupDirectory} is not correct"; } return(result); }
public List <ResumeTransactionDTO> GetAllTransactions() { ResumeTransactionDTO transactionsResume = new ResumeTransactionDTO(); OutlayAPIManager managerAPI = null; try { managerAPI = new OutlayAPIManager(); List <TransactionDTO> transactions = managerAPI.GetAllTransactions(); List <ResumeTransactionDTO> listResume = transactions.Select(value => CastObject.ToResumeTransaction(value)) .ToList(); return(listResume); } catch (Exception e) { throw new Exception("Error while procesing resume by code", e); } finally { managerAPI?.Dispose(); } }