초기커밋
This commit is contained in:
254
ServerBase/DB/QueryDbRequester.cs
Normal file
254
ServerBase/DB/QueryDbRequester.cs
Normal file
@@ -0,0 +1,254 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
|
||||
using Amazon.DynamoDBv2;
|
||||
using Amazon.DynamoDBv2.DocumentModel;
|
||||
using Amazon.DynamoDBv2.Model;
|
||||
|
||||
|
||||
|
||||
namespace ServerBase;
|
||||
|
||||
//==============================================================================================
|
||||
// DB 쿼리 종류별 재정의 클래스들 이다.
|
||||
//==============================================================================================
|
||||
|
||||
public partial class DBRequestGetBatch : QueryDbRequesterWithItemRequestBase<BatchGetItemRequest>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithItemRequest;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var db_client = query_batch.getDynamoDbConnector().getDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client, $"db_client is null !!!");
|
||||
|
||||
//=====================================================================================
|
||||
// Batch 기반 DB Get Request 처리 : Non-Transaction
|
||||
//=====================================================================================
|
||||
var response = await db_client.BatchGetItemAsync(getDbRequestGenericType());
|
||||
ArgumentNullException.ThrowIfNull(response, $"response is null !!!");
|
||||
|
||||
await response.logDetail();
|
||||
|
||||
query_runner.addDbResponse(response);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestWriteBatch : QueryDbRequesterWithItemRequestBase<BatchWriteItemRequest>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithItemRequest;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var db_client = query_batch.getDynamoDbConnector().getDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client, $"db_client is null !!!");
|
||||
|
||||
//=====================================================================================
|
||||
// Batch 기반 DB Write Request 처리 : Non-Transaction
|
||||
//=====================================================================================
|
||||
var response = await db_client.BatchWriteItemAsync(getDbRequestGenericType());
|
||||
ArgumentNullException.ThrowIfNull(response, $"response is null !!!");
|
||||
|
||||
await response.logDetail();
|
||||
|
||||
query_runner.addDbResponse(response);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestUpdate : QueryDbRequesterWithItemRequestBase<UpdateItemRequest>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithItemRequest;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var db_client = query_batch.getDynamoDbConnector().getDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client, $"db_client is null !!!");
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Update 기반 DB Update Request 처리 : Non-Transaction
|
||||
//=====================================================================================
|
||||
var response = await db_client.UpdateItemAsync(getDbRequestGenericType());
|
||||
ArgumentNullException.ThrowIfNull(response, $"response is null !!!");
|
||||
|
||||
await response.logDetail();
|
||||
|
||||
query_runner.addDbResponse(response);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestGetWithTransact : QueryDbRequesterWithItemRequestBase<TransactGetItemsRequest>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithItemRequest;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var db_client = query_batch.getDynamoDbConnector().getDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client, $"db_client is null !!!");
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// Transaction 기반 DB Get Request 처리
|
||||
//=====================================================================================
|
||||
var response = await db_client.TransactGetItemsAsync(getDbRequestGenericType());
|
||||
ArgumentNullException.ThrowIfNull(response, $"response is null !!!");
|
||||
|
||||
await response.logDetail(getDbRequestGenericType());
|
||||
|
||||
query_runner.addDbResponse(response);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestWriteWithTransact : QueryDbRequesterWithItemRequestBase<TransactWriteItemsRequest>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithItemRequest;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var db_client = query_batch.getDynamoDbConnector().getDbClient();
|
||||
ArgumentNullException.ThrowIfNull(db_client, $"db_client is null !!!");
|
||||
|
||||
//=====================================================================================
|
||||
// Transaction 기반 DB Write Request 처리
|
||||
//=====================================================================================
|
||||
var response = await db_client.TransactWriteItemsAsync(getDbRequestGenericType());
|
||||
ArgumentNullException.ThrowIfNull(response, $"response is null !!!");
|
||||
|
||||
await response.logDetail();
|
||||
|
||||
query_runner.addDbResponse(response);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//==============================================================================================
|
||||
// DB 쿼리 Document 전용 재정의 클래스들 이다.
|
||||
//==============================================================================================
|
||||
|
||||
public partial class DBRequestGetWithDocumentBatchGet : QueryDbRequesterWithDocumentBatchGetBase<DocumentBatchGet>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithDocument;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var doc_batch_get = query_runner.getOrNewMultiTableDocumentBatchGet();
|
||||
ArgumentNullException.ThrowIfNull(doc_batch_get, $"doc_batch_get is null !!!");
|
||||
|
||||
doc_batch_get.AddBatch(getDbRequestGenericType());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestWriteWithDocumentBatchWrite : QueryDbRequesterWithDocumentBatchWriteBase<DocumentBatchWrite>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithDocument;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var doc_batch_write = query_runner.getOrNewMultiTableDocumentBatchWrite();
|
||||
ArgumentNullException.ThrowIfNull(doc_batch_write, $"doc_batch_write is null !!!");
|
||||
|
||||
doc_batch_write.AddBatch(getDbRequestGenericType());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestGetWithDocumentTransactGet : QueryDbRequesterWithDocumentTransactGetBase<DocumentTransactGet>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithDocument;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var doc_transact_get = query_runner.getOrNewMultiTableDocumentTransactGet();
|
||||
ArgumentNullException.ThrowIfNull(doc_transact_get, $"doc_transact_get is null !!!");
|
||||
|
||||
doc_transact_get.AddTransactionPart(getDbRequestGenericType());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DBRequestWriteWithDocumentTransactWrite : QueryDbRequesterWithDocumentTransactWriteBase<DocumentTransactWrite>
|
||||
{
|
||||
public override async Task<Result> doDbRequestAsync()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
var result = new Result();
|
||||
|
||||
var query_batch = getQueryBatch();
|
||||
ArgumentNullException.ThrowIfNull(query_batch, $"query_batch is null !!!");
|
||||
|
||||
var query_runner = query_batch.getQueryRunner() as QueryRunnerWithDocument;
|
||||
ArgumentNullException.ThrowIfNull(query_runner, $"query_runner is null !!!");
|
||||
var doc_transact_write = query_runner.getOrNewMultiTableDocumentTransactWrite();
|
||||
ArgumentNullException.ThrowIfNull(doc_transact_write, $"doc_transact_write is null !!!");
|
||||
|
||||
doc_transact_write.AddTransactionPart(getDbRequestGenericType());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user