public async Task <bool> Insert(Goods goods, IEnumerable <GoodsAttr> attrs, IEnumerable <GoodsAttach> downloads) { var trans = sqlExecutor.BeginTransaction(); try { int id = await sqlExecutor.InsertAsync(goods, trans); foreach (var attr in attrs) { attr.GoodsId = id; await sqlExecutor.InsertAsync <GoodsAttr>(attr, trans); } foreach (var attach in downloads) { attach.GoodsId = id; await sqlExecutor.InsertAsync(attach, trans); } trans.Commit(); return(true); } catch { trans.Rollback(); return(false); } }
/// <summary> /// This update a set of dataset with batch of queries. /// </summary> /// <param name="queries">List of the queries to be updated</param> /// <param name="setList">DataSet to be updated.</param> public void UpdateDataSetList(IDictionary <string, string> queries, IList <DataSet> setList) { StringBuilder queryStringBuilder = new StringBuilder(); _executor.BeginTransaction(); if (queries == null) { return; } foreach (DataSet set in setList) { DataSet tmp = set; if (set != null) { foreach (DataTable table in set.Tables) { if (queries.ContainsKey(table.TableName)) { queryStringBuilder.Append(queries[table.TableName]); queryStringBuilder.Append(";"); } } _executor.UpdateDataSet(queryStringBuilder.ToString(), ref tmp); } } _executor.Commit(); }
/// <summary> /// This delete data using a dataset. /// </summary> /// <param name="sqlQuery">Query to be selected.</param> /// <param name="supplierId">Supplier Id</param> /// <param name="primaryKey">PrimaryKey to be used.</param> /// <param name="supplierDataSet"></param> /// <returns></returns> protected bool DeleteData(string sqlQuery, string supplierId, string primaryKey, DataSet supplierDataSet) { string query = BuildQuery(primaryKey, supplierId); try { _executor.BeginTransaction(); foreach (DataTable table in supplierDataSet.Tables) { foreach (DataRow row in table.Rows) { row.Delete(); } } _executor.UpdateDataSet(query, ref supplierDataSet); _executor.Commit(); return(true); } catch (System.Exception e) { _executor.Rollback(); throw new DataLayerExecutionException("Delete a data access layer failed!", e); } }
public IDbTransaction BeginTransaction() { Debug.WriteLine("Begin transaction START."); var result = _executor.BeginTransaction(); Debug.WriteLine("Begin transaction STOP."); return(result); }