Beispiel #1
0
        private async Task UpdateItemsAsync(DataObject dobj, SqlCommand command, bool replace)
        {
            var columns = await GetTableColumnsAsync(command).ConfigureAwait(false);

            var items = dobj.GetArray("items");

            if (items == null)
            {
                throw new ArgumentNullException(nameof(items), $"Argument items should contain an array of items to {(replace ? "replace" : "update")}");
            }

            var affectedRows = 0;

            foreach (var item in items)
            {
                var d = new DataObject();

                foreach (var kv in item)
                {
                    d[kv.Key] = kv.Value;
                }

                PrepareUpdateItemQuery(d, command, columns, replace);
                affectedRows += await command.ExecuteNonQueryAsync().ConfigureAwait(false);
            }

            dobj["affectedRows"] = affectedRows;
        }
Beispiel #2
0
        private async Task CreateItemsAsync(DataObject dobj, SqlCommand command)
        {
            var columns = await GetTableColumnsAsync(command).ConfigureAwait(false);

            var items = dobj.GetArray("items");

            if (items == null)
            {
                throw new ArgumentNullException(nameof(items), "Argument items should contain an array of items to create");
            }

            foreach (var item in items)
            {
                var d = new DataObject();

                foreach (var kv in item)
                {
                    d[kv.Key] = kv.Value;
                }

                PrepareCreateItemQuery(d, command, columns);

                item["id"] = await command.ExecuteScalarAsync().ConfigureAwait(false);
            }

            dobj["items"] = items;
        }