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 }); } }
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 }); }