Exemple #1
0
        public BarangModel GetById(int id)
        {
            BarangModel model            = null;
            var         dataAccessStatus = new DataAccessStatus();

            try
            {
                model = _context.Conn.Get <BarangModel>(id);
            }
            catch (SQLiteException ex)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                           customMessage: "Tidak dapat mengambil data barang yang sesuai dengan permintaan id.",
                                           helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);
                throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                              dataAccessStatus: dataAccessStatus);
            }

            if (model == null)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: "",
                                           customMessage: "Data tidak ditemukan. " +
                                           $"Tidak dapat mengambil data barang yang sesuai dengan permintaan id {id}. " +
                                           $"ID {id} tidak ada di database.",
                                           helpLink: "", errorCode: 0, stackTrace: "");
                throw new DataAccessException(dataAccessStatus: dataAccessStatus);
            }

            return(model);
        }
Exemple #2
0
        public void Update(IBarangModel barangModel)
        {
            DataAccessStatus dataAccessStatus = new DataAccessStatus();

            try
            {
                RecordExistsCheck((BarangModel)barangModel, TypeOfExistenceCheck.DoesExistInDB, RequestType.Update);
            }
            catch (DataAccessException ex)
            {
                ex.DataAccessStatusInfo.CustomMessage    = "Barang tidak dapat diubah, dikarenakan data barang tidak ditemukan.";
                ex.DataAccessStatusInfo.ExceptionMessage = string.Copy(ex.Message);
                ex.DataAccessStatusInfo.StackTrace       = string.Copy(ex.StackTrace);

                throw ex;
            }

            try
            {
                _context.Conn.Update((BarangModel)barangModel);
            }
            catch (SQLiteException ex)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                           customMessage: "Terjadi kesalahan saat menyimpan data Barang.",
                                           helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);
                throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                              dataAccessStatus: dataAccessStatus);
            }
        }
        protected DataAccessStatus SetDataAccessValues(SqlException ex, string customMessage)
        {
            var dataAccessStatus = new DataAccessStatus();

            dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                       customMessage: customMessage,
                                       helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);

            return(dataAccessStatus);
        }
Exemple #4
0
        public void Add(IBarangModel barangModel)
        {
            DataAccessStatus dataAccessStatus = new DataAccessStatus();

            var exists = _context.Conn.ExecuteScalar <bool>("SELECT COUNT(1) from barang where nama=@nama", new { barangModel.nama });

            if (exists)
            {
                dataAccessStatus.Status        = "Error";
                dataAccessStatus.CustomMessage = "Nama barang sudah ada, silahkan ganti dengan nama yang lain.";

                throw new DataAccessException(dataAccessStatus);;
            }

            try
            {
                _context.Conn.Insert((BarangModel)barangModel);
            }
            catch (SQLiteException ex)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                           customMessage: "Terjadi kesalahan saat menambahkan data Barang.",
                                           helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);
                throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                              dataAccessStatus: dataAccessStatus);
            }

            try
            {
                RecordExistsCheck(barangModel, TypeOfExistenceCheck.DoesExistInDB, RequestType.ConfirmAdd);
            }
            catch (DataAccessException ex)
            {
                ex.DataAccessStatusInfo.Status             = "Error";
                ex.DataAccessStatusInfo.OperationSucceeded = false;
                ex.DataAccessStatusInfo.CustomMessage      = "Tidak dapat menemukan data barang di database setelah sukses menambahkan data.";
                ex.DataAccessStatusInfo.ExceptionMessage   = string.Copy(ex.Message);
                ex.DataAccessStatusInfo.StackTrace         = string.Copy(ex.StackTrace);

                throw ex;
            }
        }
Exemple #5
0
        public IEnumerable <BarangModel> GetAll()
        {
            var listObj = new List <BarangModel>();

            var dataAccessStatus = new DataAccessStatus();

            try
            {
                listObj = _context.Conn.GetAll <BarangModel>().ToList();
            }
            catch (SQLiteException ex)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                           customMessage: "Tidak dapat mengambil list Model barang dari Database.",
                                           helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);
                throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                              dataAccessStatus: dataAccessStatus);
            }

            return(listObj);
        }
        protected DataAccessStatus SetDataAccessValues(SqlException ex, ErrorMessageType errorMessageType)
        {
            var customMessage = "";

            switch (errorMessageType)
            {
            case ErrorMessageType.Insert:
                customMessage = $"Terjadi kesalahan saat menambahkan data {_modelName}.";
                break;

            case ErrorMessageType.Update:
                customMessage = $"Terjadi kesalahan saat menyimpan data {_modelName}.";
                break;

            case ErrorMessageType.Delete:
                customMessage = $"Terjadi kesalahan saat menghapus data {_modelName}. " +
                                "Kemungkinan data sedang digunakan oleh data yang lain.";
                break;

            case ErrorMessageType.GetList:
                customMessage = $"Gagal mengambil data list {_modelName}.";
                break;

            case ErrorMessageType.GetById:
                customMessage = $"Gagal mengambil data {_modelName} yang sesuai dengan id yang diminta.";
                break;

            default:
                customMessage = "Terjadi keslahan saat melakukan operasi yang diminta.";
                break;
            }

            var dataAccessStatus = new DataAccessStatus();

            dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                       customMessage: customMessage,
                                       helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);

            return(SetDataAccessValues(ex, customMessage));
        }
Exemple #7
0
        private IDbConnection GetOpenConnection(string connString, string providerName)
        {
            IDbConnection    conn             = null;
            DataAccessStatus dataAccessStatus = new DataAccessStatus();

            try
            {
                var provider = DbProviderFactories.GetFactory(providerName);
                conn = provider.CreateConnection();
                conn.ConnectionString = connString;
                conn.Open();
            }
            catch (SQLiteException ex)
            {
                dataAccessStatus.SetValues(status: "Error", operationSucceeded: false, exceptionMessage: ex.Message,
                                           customMessage: "Tidak dapat membuka koneksi ke Database.",
                                           helpLink: ex.HelpLink, errorCode: ex.ErrorCode, stackTrace: ex.StackTrace);
                throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                              dataAccessStatus: dataAccessStatus);
            }

            return(conn);
        }