public CommonResponseViewModel AddExpense(ExpenseViewModel expenseVM)
        {
            var responseVM = new CommonResponseViewModel();

            try
            {
                var expenseDBModel = new EfDbContext.Expenses();
                ConstructExpenseDBModel(expenseVM, ref expenseDBModel);

                bool isDuplicate = CheckIsDuplicate(expenseVM);
                if (isDuplicate)
                {
                    responseVM.message = "Expense Name already exists";
                    return(responseVM);
                }


                using (_dbContext = new AccountdbContext())
                {
                    _dbContext.Expenses.Add(expenseDBModel);
                    _dbContext.SaveChanges();

                    responseVM.isSuccess = true;
                    responseVM.recordId  = expenseDBModel.ExpenseId;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(responseVM);
        }
        private static void ConstructExpenseDBModel(ExpenseViewModel expenseVM, ref EfDbContext.Expenses expenseDBModel, bool isDBUpdate = false)
        {
            expenseDBModel.ExpenseName   = expenseVM.name.Trim();
            expenseDBModel.ExpenseTypeId = expenseVM.expenseTypeId;

            if (!isDBUpdate)
            {
                expenseDBModel.ExpenseId = expenseVM.id;

                /*CreatedDate = e.createdDate,
                 * CreatedBy = e.createdBy,
                 * ModifiedDate = e.modifiedDate,
                 * ModifiedBy = e.modifiedBy,*/
            }
        }
        private static ExpenseViewModel ConstructExpenseViewModelFromContext(EfDbContext.Expenses e, EfDbContext.ExpenseTypes et)
        {
            return(new ExpenseViewModel()
            {
                id = e.ExpenseId,
                name = e.ExpenseName,
                expenseTypeId = et.ExpenseTypeId,
                expenseTypeName = et.ExpenseTypeName,

                /*createdDate = e.CreatedDate,
                 * formattedCreatedDate = e.CreatedDate.ToString(_dateFormat),
                 * createdBy = e.CreatedBy,
                 * modifiedDate = e.ModifiedDate,
                 * formattedModifiedDate = e.ModifiedDate.ToString(_dateFormat),
                 * modifiedBy = e.ModifiedBy,*/
            });
        }