Пример #1
0
        /*
         * public DataResult UpdateCategoryExpense(CategoryExpenseDto categoryExpenseDto)
         * {
         *  CategoryExpense categoryExpense = _categoriesDAL.GetCategoryExpenseById(categoryExpenseDto.CategoryExpenseId);
         *
         *  if (categoryExpense != null)
         *  {
         *      if (Decimal.Compare(categoryExpense.UpperBudgetAmount, categoryExpenseDto.UpperBudgetAmount) != 0 || Decimal.Compare(categoryExpense.LowerBudgetAmount, categoryExpenseDto.LowerBudgetAmount) != 0)
         *      {
         *          decimal updatedLowerBudgetAmount = categoryExpenseDto.LowerBudgetAmount;
         *          decimal updatedUpperBudgetAmount = categoryExpenseDto.UpperBudgetAmount;
         *
         *          _categoriesDAL.UpdateCategoryExpenseBudgetLimits(categoryExpenseDto.CategoryExpenseId, updatedUpperBudgetAmount, updatedLowerBudgetAmount);
         *      }
         *      else if (Decimal.Compare(categoryExpense.AmountLeft, categoryExpenseDto.AmountLeft) != 0 || Decimal.Compare(categoryExpense.AmountSpent, categoryExpenseDto.AmountSpent) != 0)
         *      {
         *          decimal updatedAmountLeft = categoryExpenseDto.AmountLeft;
         *          decimal updatedAmountSpent = categoryExpenseDto.AmountSpent;
         *
         *          _categoriesDAL.UpdateCategoryExpenseAmountSpentAndAmountLeft(categoryExpenseDto.CategoryExpenseId, updatedAmountSpent, updatedAmountLeft);
         *      }
         *  }
         *
         *  CategoryExpense updatedCategoryExpense = _categoriesDAL.GetCategoryExpenseById(categoryExpenseDto.CategoryExpenseId);
         *
         *  if (updatedCategoryExpense != null)
         *  {
         *      CategoryExpenseDto mappedCategoryExpense = _mapper.Map<CategoryExpenseDto>(updatedCategoryExpense);
         *
         *      return mappedCategoryExpense;
         *  }
         *
         *  return null;
         * }
         */

        public DataResult UpdateCategoryExpenseBudgetLimits(CategoryExpenseDto categoryExpenseDto)
        {
            List <string>      validationMessages    = new List <string>();
            bool               success               = false;
            CategoryExpenseDto mappedCategoryExpense = null;

            CategoryExpense categoryExpense   = _categoriesDAL.UpdateCategoryExpenseBudgetLimits(categoryExpenseDto.CategoryExpenseId, categoryExpenseDto.UpperBudgetAmount, categoryExpenseDto.LowerBudgetAmount);
            decimal         updatedAmountLeft = categoryExpense.UpperBudgetAmount - categoryExpense.AmountSpent;

            if (updatedAmountLeft < 0)
            {
                updatedAmountLeft = 0;
            }

            categoryExpense = _categoriesDAL.UpdateCategoryExpenseAmountSpentAndAmountLeft(categoryExpenseDto.CategoryExpenseId, categoryExpense.AmountSpent, updatedAmountLeft);

            if (categoryExpense != null)
            {
                List <Transaction> transactions = _transactionsDAL.GetTransactionsByCategoryExpenseId(categoryExpense.CategoryExpenseId).OrderByDescending(t => t.Date).ToList();
                categoryExpense.Transactions = transactions;

                mappedCategoryExpense = _mapper.Map <CategoryExpenseDto>(categoryExpense);

                if (mappedCategoryExpense != null)
                {
                    success = true;
                }
            }

            if (!success)
            {
                validationMessages.Add("Could not update budget limits. Please refresh page and try again.");
            }

            return(new DataResult(mappedCategoryExpense, success, validationMessages));
        }