Example #1
0
        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);
            }
        }
Example #2
0
        /// <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();
        }
Example #3
0
        /// <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);
        }