Exemplo n.º 1
0
        private ExpenseDTO expense_modelToDto(IExpenseModel e)
        {
            ExpenseDTO expenseDTO = new ExpenseDTO();

            expenseDTO.ExpenseId     = e.ExpenseId;
            expenseDTO.ExpenseTypeId = e.ExpenseTypeId;
            expenseDTO.Date          = DateTime.Parse(e.Date);
            expenseDTO.Cost          = e.Cost;
            expenseDTO.UserId        = e.UserId;
            IExpenseTypeModel expenseTypeModel = expenseTypeRepository.GetById(e.ExpenseTypeId);

            expenseDTO.ExpenseTypeName = expenseTypeModel != null? expenseTypeModel.ExpenseTypeName : "";
            return(expenseDTO);
        }
        public void Update(IExpenseModel expenseModel)
        {
            DataAccessResult dataAccessResult = new DataAccessResult();

            string sql = "UPDATE Expense SET ExpenseTypeId = @ExpenseTypeId, Date = @Date, Cost = @Cost WHERE Expense.ExpenseId = @ExpenseId";

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                try
                {
                    connection.Open();

                    using (SQLiteCommand cmd = new SQLiteCommand(sql, connection))
                    {
                        cmd.CommandText = sql;
                        cmd.Prepare();
                        cmd.Parameters.Add(new SQLiteParameter("@ExpenseId", expenseModel.ExpenseId));
                        cmd.Parameters.Add(new SQLiteParameter("@ExpenseTypeId", expenseModel.ExpenseTypeId));
                        cmd.Parameters.Add(new SQLiteParameter("@Date", expenseModel.Date));
                        cmd.Parameters.Add(new SQLiteParameter("@Cost", expenseModel.Cost));
                        cmd.ExecuteNonQuery();
                    }
                }
                catch (SQLiteException e)
                {
                    dataAccessResult.setValues(
                        status: "Error",
                        operationSucceeded: false,
                        exceptionMessage: e.Message,
                        customMessage: "Unable to update expense [Expense->Update]",
                        helpLink: e.HelpLink,
                        errorCode: e.ErrorCode,
                        stackTrace: e.StackTrace);

                    throw new DataAccessException(e.Message, e.InnerException, dataAccessResult);
                }
            }
            return;
        }
        public void Create(IExpenseModel expenseModel)
        {
            DataAccessResult dataAccessResult = new DataAccessResult();

            string sql = "INSERT INTO Expense (ExpenseTypeId, Date, Cost, UserId) VALUES (@ExpenseTypeId, @Date, @Cost, @UserId)";

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                try
                {
                    connection.Open();

                    using (SQLiteCommand cmd = new SQLiteCommand(sql, connection))
                    {
                        cmd.CommandText = sql;
                        cmd.Prepare();
                        cmd.Parameters.AddWithValue("@ExpenseTypeId", expenseModel.ExpenseTypeId);
                        cmd.Parameters.AddWithValue("@Date", DateTime.Parse(expenseModel.Date));
                        cmd.Parameters.AddWithValue("@Cost", expenseModel.Cost);
                        cmd.Parameters.AddWithValue("@UserId", expenseModel.UserId);
                        cmd.ExecuteNonQuery();
                    }
                }
                catch (SQLiteException e)
                {
                    dataAccessResult.setValues(
                        status: "Error",
                        operationSucceeded: false,
                        exceptionMessage: e.Message,
                        customMessage: "Greška kod kreiranja zapisa troška [Expense->Create]",
                        helpLink: e.HelpLink,
                        errorCode: e.ErrorCode,
                        stackTrace: e.StackTrace);

                    throw new DataAccessException(e.Message, e.InnerException, dataAccessResult);
                }
            }
            return;
        }
        public void Delete(IExpenseModel expenseModel)
        {
            DataAccessResult dataAccessResult = new DataAccessResult();

            string sql = "DELETE FROM Expense WHERE Expense.ExpenseId = @ExpenseId";

            using (SQLiteConnection connection = new SQLiteConnection(_connectionString))
            {
                try
                {
                    connection.Open();

                    using (SQLiteCommand cmd = new SQLiteCommand(sql, connection))
                    {
                        cmd.CommandText = sql;
                        cmd.Prepare();
                        cmd.Parameters.Add(new SQLiteParameter("@ExpenseId", expenseModel.ExpenseId));
                        cmd.ExecuteNonQuery();
                    }
                }
                catch (SQLiteException e)
                {
                    dataAccessResult.setValues(
                        status: "Error",
                        operationSucceeded: false,
                        exceptionMessage: e.Message,
                        customMessage: "Greška kod brisanja zapisa troška [Expense->Delete]",
                        helpLink: e.HelpLink,
                        errorCode: e.ErrorCode,
                        stackTrace: e.StackTrace);

                    throw new DataAccessException(e.Message, e.InnerException, dataAccessResult);
                }
            }
            return;
        }