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