/// <summary> /// Lấy thông tin đối tượng theo khóa chính /// </summary> /// <param name="id">Id của bản ghi</param> /// <returns></returns> public async Task <T> GetEntityByIdAsync(object id) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.GetById); var entities = GetData(storeName, new object[] { id }); return(await Task.FromResult(entities.ToList().FirstOrDefault())); }
/// <summary> /// Update bảng sử dụng param databaseConnector /// </summary> /// <param name="entity"></param> /// <param name="databaseConnector"></param> /// <returns></returns> public async Task <int> Update(T entity, DatabaseConnector databaseConnector) { var procedureName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Update); var value = await SaveChangeAndReturnRecordEffect(databaseConnector, procedureName, entity); return(value); }
/// <summary> /// Thêm mới sử dụng connnector là tham số đầu vào Trả về số bản ghi thành công /// </summary> /// <param name="entity"></param> /// <param name="databaseConnector"></param> /// <returns></returns> protected virtual async Task <object> InsertAndReturnNumberRecordEffect(T entity, DatabaseConnector databaseConnector) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Insert); var result = await SaveChangeAndReturnRecordEffect(databaseConnector, storeName, entity); return(result); }
/// <summary> /// Lấy danh sách các đối tượng theo một bộ tham số truyền vào /// </summary> /// <param name="parameters">một mảng chứa các tham số sẽ truyền vào store</param> /// <returns></returns> /// CreateBy: NVMANH (20/04/2020) public async Task <IReadOnlyList <T> > GetEntities <T>(object[] parameters) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Get); var entities = await Task.FromResult(GetData <T>(storeName, parameters).ToList()); return(entities); }
/// <summary> /// Xóa có tham số connector /// </summary> /// <param name="param"></param> /// <param name="databaseConnector"></param> /// <returns></returns> public Task <int> Delete(object[] param, DatabaseConnector databaseConnector) { var procedureName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Delete); databaseConnector.SetParameterValue(procedureName, param); var result = databaseConnector.ExecuteNonQuery(); return(result); }
/// <summary> /// Sửa dữ liệu (tự sinh store sửa theo teamplate Update[Tên bảng] /// </summary> /// <param name="entity">Thực thể</param> /// <returns></returns> public virtual Task <int> Update(T entity) { using (DatabaseConnector databaseConnector = new DatabaseConnector()) { var procedureName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Update); var value = SaveChangeAndReturnRecordEffect(databaseConnector, procedureName, entity); databaseConnector.CommitTransaction(); return(value); } }
/// <summary> /// Xóa dữ liệu theo các điều kiện trả về số bản ghi bị xóa trong DB /// </summary> /// <param name="param">Bộ tham số truyền vào cho store - map theo thứ tự</param> /// <returns></returns> /// CreatedBy: NVMANH (21/02/2020) public Task <int> Delete <T>(object[] param) { using (DatabaseConnector databaseConnector = new DatabaseConnector()) { var procedureName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Delete); databaseConnector.SetParameterValue(procedureName, param); databaseConnector.CommitTransaction(); return(databaseConnector.ExecuteNonQuery()); } }
/// <summary> /// Thêm mới dữ liệu theo store mặc định tự sinh /// </summary> /// <param name="entity">Đối tượng sẽ thêm mới vào Database</param> /// <returns>Số bản ghi thêm mới thành công</returns> protected virtual async Task <object> InsertAndReturnNumberRecordEffect(T entity) { using (DatabaseConnector databaseConnector = new DatabaseConnector()) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Insert); var result = await SaveChangeAndReturnRecordEffect(databaseConnector, storeName, entity); databaseConnector.CommitTransaction(); return(result); } }
/// <summary> /// Thêm mới 1 List Object (sử dụng ADO.NET_ /// </summary> /// <param name="entities">Danh sách các object</param> /// <returns></returns> /// CreatedBy: NVMANH (22/05/2020) public async Task AddRangeAsync(List <T> entities) { using (DatabaseConnector databaseConnector = new DatabaseConnector()) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Insert); foreach (var entity in entities) { await databaseConnector.SaveChangeAndReturnRecordEffect(storeName, entity); } databaseConnector.CommitTransaction(); } }
/// <summary> /// Lấy danh sách các đối tượng theo một bộ tham số truyền vào /// </summary> /// <returns></returns> public async Task <IReadOnlyList <T> > GetEntities() { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Get); return(await Task.FromResult(GetData(storeName, null).ToList())); }
/// <summary> /// Thêm mới và trả về kết quả từ store sử dụng connector truyền vào /// </summary> /// <param name="entity"></param> /// <param name="databaseConnector"></param> /// <returns></returns> protected virtual async Task <object> InsertAndReturnSingleValue(T entity, DatabaseConnector databaseConnector) { var storeName = DatabaseUtility.GeneateStoreName <T>(ProcdureTypeName.Insert); return(await InsertAndReturnSingleValue(storeName, entity, databaseConnector)); }