Beispiel #1
0
        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);
        }
Beispiel #2
0
        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>());
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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();
            }
        }