public RepositoryActionResult <ExpenseGroup> EditExpenseGroup(ExpenseGroup expenseGroup)
        {
            try
            {
                var existingEG = _context.ExpenseGroups
                                 .FirstOrDefault(eg => eg.Id == expenseGroup.Id);

                if (existingEG == null)
                {
                    return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.NotFound));
                }

                _context.Entry(existingEG).State = EntityState.Detached;

                _context.ExpenseGroups.Attach(expenseGroup);

                _context.Entry(expenseGroup).State = EntityState.Modified;

                var result = _context.SaveChanges();

                if (result == 0)
                {
                    return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.NothingModified, null));
                }
                else
                {
                    return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Updated));
                }
            }
            catch (Exception ex)
            {
                return(new RepositoryActionResult <ExpenseGroup>(expenseGroup, RepositoryActionStatus.Error, ex));
            }
        }
        public RepositoryActionResult <Expense> UpdateExpense(Expense expense)
        {
            try
            {
                var existingE = _context.Expenses
                                .FirstOrDefault(e => e.Id == expense.Id);

                if (existingE == null)
                {
                    return(new RepositoryActionResult <Expense>(expense, RepositoryActionStatus.NotFound, null));
                }

                _context.Entry(existingE).State = EntityState.Detached;

                _context.Expenses.Attach(expense);

                _context.Entry(expense).State = EntityState.Modified;

                var result = _context.SaveChanges();

                if (result > 0)
                {
                    return(new RepositoryActionResult <Expense>(expense, RepositoryActionStatus.Updated));
                }

                return(new RepositoryActionResult <Expense>(expense, RepositoryActionStatus.NothingModified, null));
            }
            catch (Exception ex)
            {
                return(new RepositoryActionResult <Expense>(expense, RepositoryActionStatus.Error, ex));
            }
        }