internal DataModel.Budget GetBudget(string oCat)
        {
            List <DataModel.Budget> lBudgets = oFactory.oData.Budget_RetrieveAll();

            DataModel.Budget oBudget = lBudgets.Where(tmp => tmp.Category == oCat).FirstOrDefault();

            return(oBudget);
        }
 internal DataModel.Budget RemoveBudget(DataModel.Budget oBudget)
 {
     try
     {
         oFactory.oData.Budget_Delete((DataModel.eCategory)Enum.Parse(typeof(DataModel.eCategory), oBudget.Category));
     }
     catch (Exception ex)
     {
         oBudget.Success = false;
         oBudget.Message = "Failed to remove Budget: " + ex.Message + ex.StackTrace;
     }
     return(oBudget);
 }
Пример #3
0
        private void Budget_Update(DataModel.Budget oBudget)
        {
            List <DataModel.Budget> lBudgets = Budget_RetrieveAll();

            for (int i = 0; i < lBudgets.Count; i++)
            {
                if (lBudgets[i].Category == oBudget.Category)
                {
                    lBudgets[i] = oBudget;
                    break;
                }
            }

            UpdateBudgetsFile(lBudgets);
        }
        internal DataModel.Budget AddUpdateBudget(DataModel.Budget oBudget)
        {
            try
            {
                oFactory.oData.Budget_AddUpdate(oBudget);

                if (!ValidateBudget((DataModel.eCategory)Enum.Parse(typeof(DataModel.eCategory), oBudget.Category)))
                {
                    oBudget.Message = OverBudgetMessage;
                }
            }
            catch (Exception ex)
            {
                oBudget.Success = false;
                oBudget.Message = "Failed to add Budget: " + ex.Message + ex.StackTrace;
            }
            return(oBudget);
        }
        private bool ValidateBudget(DataModel.eCategory oCategory)
        {
            // Grab all Transactions that have an amount and under the category inputted and they said that they want to include it in the budget.
            List <DataModel.Transaction> lTransactions = oFactory.oData.RetrieveTransactions().Where(tmpTran => tmpTran.IgnoreBudget == false && tmpTran.Category == oCategory.ToString() && tmpTran.Amount != null && tmpTran.Amount > 0 && DateTime.Parse(tmpTran.TransactionDate).Month == DateTime.Now.Month).ToList();

            // Get the budget for the inputted category
            DataModel.Budget oBudget = oFactory.oData.Budget_RetrieveAll().Where(tmpBudget => tmpBudget.Category == oCategory.ToString()).FirstOrDefault();

            if (oBudget != null && !string.IsNullOrEmpty(oBudget.Value) && lTransactions?.Count > 0)
            {
                decimal BudgetValue      = Convert.ToDecimal(oBudget.Value);
                decimal TransactionValue = lTransactions.Sum(tmpTran => (decimal)tmpTran.Amount);
                if (TransactionValue > BudgetValue)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #6
0
        public void Budget_AddUpdate(DataModel.Budget oBudget)
        {
            List <DataModel.Budget> lBudgets = Budget_RetrieveAll();

            DataModel.Budget existingBudget = lBudgets.Where(tmpBudget => tmpBudget.Category == oBudget.Category).FirstOrDefault();


            for (int i = 0; i < lBudgets.Count; i++)
            {
                if (lBudgets[i].Category == oBudget.Category)
                {
                    lBudgets[i] = oBudget;
                    break;
                }
            }


            if (existingBudget == null)
            {
                lBudgets.Add(oBudget);
            }

            UpdateBudgetsFile(lBudgets);
        }