Esempio n. 1
0
        internal async Task <ResponseBase> DeleteExpense(string expenseIdValue, string userId)
        {
            var expenseId = Convert.ToInt32(expenseIdValue);
            var expense   =
                _context.Expenses.Include(c => c.BudgetCategory).ThenInclude(c => c.UserBudget)
                .FirstOrDefault(c => c.UId == expenseId && c.BudgetCategory.UserBudget.UserId == userId);

            if (expense != null)
            {
                _context.Expenses.Remove(expense);
                await _context.SaveChangesAsync();

                return(new ResponseBase());
            }
            else
            {
                return(new ResponseBase {
                    ValidationMessage = Messages.InvalidDeleteExpense
                });
            }
        }
Esempio n. 2
0
        public async Task <NewCategoryResponse> CreateDefaultCategory(ExpenseCategoryRequest request)
        {
            var categories = await _context.ExpenseCategory.Where(c => c.IsDefault == true).ToListAsync();

            var newCategory = ExpensesTrackerFactory.DefaultCategory(request.CategoryName);

            var validation = _domainService.IsValidNewCategory(newCategory, categories);

            if (validation.IsValid())
            {
                _context.ExpenseCategory.Add(newCategory);
                int result = await _context.SaveChangesAsync();

                return(new NewCategoryResponse {
                    CategoryId = newCategory.UId
                });
            }
            return(new NewCategoryResponse {
                ValidationMessage = validation.ValidationErrorMessage
            });
        }