Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public CalendarTransaction(int year, int month) : this()
        {
            this.year  = year;
            this.month = month;

            outlayServiceAPI = new OutlayAPIManager();

            InitializeAllComponents();
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
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>());
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
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);
            }
        }
Ejemplo n.º 8
0
        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");
            }
        }
Ejemplo n.º 9
0
        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();
            }
        }
Ejemplo n.º 10
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);
        }