public ResumeMonth GetResume(int year, int month) { ResumeMonth resumeMonth = new ResumeMonth(year, month); using (OutlayAPIManager API_Manager = new OutlayAPIManager()) { List <TransactionDTO> monthTransaction = API_Manager.GetTransaction(year, month); if (monthTransaction != null) { double totalAdjust = monthTransaction.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.ADJUST.ToString()) .Select(x => x.Amount) .Sum(); double totalSpenses = monthTransaction.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.SPENDING.ToString()) .Select(x => x.Amount) .Sum(); double totalIncoming = monthTransaction.Where(x => x.DetailTransaction.Type == OutlayDataHelper.OutlayTypesEnum.INCOMING.ToString()) .Select(x => x.Amount) .Sum(); var groupingCode = monthTransaction.GroupBy(x => x.DetailTransaction.Code) .ToDictionary(key => key.Key, value => value.Sum(x => x.Amount)); resumeMonth.Spenses = totalSpenses; resumeMonth.Incoming = totalIncoming; resumeMonth.Adjust = totalAdjust; resumeMonth.GroupCodeTransactions = groupingCode; } } return(resumeMonth); }
public CalendarTransaction(int year, int month) : this() { this.year = year; this.month = month; outlayServiceAPI = new OutlayAPIManager(); InitializeAllComponents(); }
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 <ResultInfo> SaveChanges() { using (OutlayAPIManager manager = new OutlayAPIManager()) { List <ResultInfo> resultList = new List <ResultInfo>(); resultList.AddRange(manager.SaveTransaction(addedTransactions)); resultList.AddRange(manager.ModifyTransaction(modifiedTransactions)); resultList.AddRange(manager.DeleteTransaction(deletedTransactions)); return(resultList); } }
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 void LoadTransactionToBDFromCSV(string path) { if (File.Exists(path)) { string[] transactionFileLines = File.ReadAllLines(path); string dateLoad = DateTime.Today.ToString("yyyy_MM_dd"); using (OutlayAPIManager manager = new OutlayAPIManager()) { List <TransactionDTO> transactionList = new List <TransactionDTO>(); for (int indexLine = 1; indexLine < transactionFileLines.Length; ++indexLine) { string[] columns = transactionFileLines[indexLine].Split(';'); TransactionDTO transaction = new TransactionDTO() { Date = DateTime.Parse(columns[0].Trim()), Amount = Double.Parse(columns[2].Trim(), System.Globalization.NumberStyles.AllowDecimalPoint), DetailTransaction = new DetailTransacionDTO() { Type = columns[1].Trim(), Code = "LOAD_CSV", Description = $"LOAD_CS_{dateLoad}" } }; transactionList.Add(transaction); } manager.SaveTransaction(transactionList); } } else { throw new Exception($"Path {path} not found"); } }
public List <ResumeTransactionDTO> GetAllMonthsTransactions(int year, int month) { OutlayAPIManager managerAPI = null; try { managerAPI = new OutlayAPIManager(); List <TransactionDTO> transactions = managerAPI.GetTransaction(year, month); 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(); } }
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); }