public void DeleteTicketByRowId(int rowId) { String query = String.Format("DELETE FROM [dbo].[tbTickets] where TicketId ={0}", rowId); DataAccessClient da = new DataAccessClient(); da.ExecuteQuery(ConnectionString, query); }
public async Task Update_address() { // arrange var customer = NewCustomer(); // act await DataAccessClient.CreateCustomerAsync(customer); var address = new AddressRecord { Label = "Work", Street = "101 W. Broadway", City = "San Diego", State = "CA" }; await DataAccessClient.AddOrUpdateAddressAsync(customer.Username, address); var result = await Table.GetItemAsync(customer.GetPrimaryKey(), consistentRead : true); // assert result.Username.Should().Be(customer.Username); result.Name.Should().Be(customer.Name); result.EmailAddress.Should().Be(customer.EmailAddress); result.Addresses.Should().NotBeEmpty(); result.Addresses.Should().ContainKey("Work"); result.Addresses["Work"].Should().BeEquivalentTo(address); }
public string CreateNewTicket(string emailId, string ticketDesc, string ticketType) { StringBuilder strResult = new StringBuilder(); DataSet DataInserted = new DataSet(); DataAccessClient client = new DataAccessClient(); string spname = "[dbo].[uspInsertNewTicket]"; SqlParameter[] paramsall = new SqlParameter[3]; SqlParameter spmEmaildId = new SqlParameter("@emailId", SqlDbType.NVarChar, 100); spmEmaildId.Value = emailId; SqlParameter spmTickDesc = new SqlParameter("@ticketDesc", SqlDbType.NVarChar, 4000); spmTickDesc.Value = ticketDesc; SqlParameter spmTicketType = new SqlParameter("@ticketType", SqlDbType.NVarChar, 15); spmTicketType.Value = ticketType; paramsall[0] = spmEmaildId; paramsall[1] = spmTickDesc; paramsall[2] = spmTicketType; try { DataInserted = client.ExecuteStoredProc(spname, ConnectionString, paramsall); return("Success"); } catch (Exception e) { return(string.Empty); } }
public void UpdateTicketDetails(string tDesc, string status, string assignedTo, int ticketId) { String query = String.Format("Update [dbo].[tbTickets] SET TicketDesc = '{0}', Status = '{1}', [AssignedTo]= " + "(SELECT Id from [TrackerDB].[dbo].[tbUser] WHERE UserName ='******') WHERE TicketId = {3}", tDesc, status, assignedTo, ticketId); DataAccessClient da = new DataAccessClient(); da.ExecuteQuery(ConnectionString, query); }
public DataSet GetTicketDetails() { string query = string.Empty; DataSet ds = new DataSet(); query = "SELECT [TicketId],[TicketDesc],[Status],[IsActive],[AssignedTo] FROM[TrackerDB].[dbo].[vwGetTicketList]"; DataAccessClient da = new DataAccessClient(); ds = da.ExecuteQuery(ConnectionString, query); return(ds); }
public async Task Create_customer_record() { // arrange var customer = NewCustomer(); // act await DataAccessClient.CreateCustomerAsync(customer); var result = await Table.GetItemAsync(customer.GetPrimaryKey(), consistentRead : true); // assert result.Should().BeEquivalentTo(customer); }
public async Task PutItem_with_condition_failed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); // act var result = await Table.PutItem(customer.GetPrimaryKey(), customer) .WithCondition(record => DynamoCondition.DoesNotExist(record)) .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task DeleteItem_with_condition_failed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); // act var result = await Table.DeleteItem(customer.GetPrimaryKey()) .WithCondition(record => record.Name == "Bob") .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task UpdateItem_with_condition_failed() { // arrange var customer = NewCustomer(); var(order, items) = NewOrder(customer.Username); await DataAccessClient.CreateCustomerAsync(customer); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.UpdateItem(order.GetPrimaryKey()) .WithCondition(record => record.Status == OrderStatus.Shipped) .Set(record => record.Status, OrderStatus.Delivered) .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task BatchGetItemsMixedPartial() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); var(order, items) = NewOrder(customer.Username); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.BatchGetItems() .BeginGetItem(customer.GetPrimaryKey()) .Get(record => record.Username) .End() .BeginGetItem(order.GetPrimaryKey()) .Get(record => record.OrderId) .End() .ExecuteAsync(); // assert result.Should().HaveCount(2); // verify fetched customer record var customerRecords = result.OfType <CustomerRecord>().ToList(); customerRecords.Should().HaveCount(1); var fetchedCustomer = customerRecords.First(); fetchedCustomer.Should().NotBeNull(); fetchedCustomer.Username.Should().Be(customer.Username); fetchedCustomer.Name.Should().BeNull(); // verify fetched customer record var orderRecords = result.OfType <OrderRecord>().ToList(); orderRecords.Should().HaveCount(1); var fetchedOrder = orderRecords.First(); fetchedOrder.Should().NotBeNull(); fetchedOrder.OrderId.Should().Be(order.OrderId); fetchedOrder.CustomerUsername.Should().BeNull(); }
public async Task BatchGetItems() { // arrange var customer1 = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer1); var customer2 = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer2); // act var result = await Table.BatchGetItems(new[] { customer1.GetPrimaryKey(), customer2.GetPrimaryKey() }).ExecuteAsync(); // assert result.Should().HaveCount(2); result.Should().ContainEquivalentOf(customer1); result.Should().ContainEquivalentOf(customer2); }
public async Task BatchGetItemsMixed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); var(order, items) = NewOrder(customer.Username); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.BatchGetItems() .GetItem(customer.GetPrimaryKey()) .GetItem(order.GetPrimaryKey()) .ExecuteAsync(); // assert result.Should().HaveCount(2); result.Should().ContainEquivalentOf(customer); result.Should().ContainEquivalentOf(order); }
public async Task Add_order() { // arrange var customer = NewCustomer(); var(order, items) = NewOrder(customer.Username); // act await DataAccessClient.CreateCustomerAsync(customer); await DataAccessClient.SaveOrderAsync(order, items); var result = await DataAccessClient.GetCustomerWithMostRecentOrdersAsync(customer.Username, limit : 10); // assert result.Customer.Username.Should().Be(customer.Username); result.Customer.Name.Should().Be(customer.Name); result.Customer.EmailAddress.Should().Be(customer.EmailAddress); result.Orders.Count().Should().Be(1); result.Orders.First().Should().BeEquivalentTo(order); }
//--- Methods --- public override async Task InitializeAsync(LambdaConfig config) { _dataClient = new DataAccessClient(config.ReadDynamoDBTableName("GameTable")); _gameLoopFunctionArn = config.ReadText("GameLoopFunction"); }
//--- Methods --- public override async Task InitializeAsync(LambdaConfig config) { _dataClient = new DataAccessClient(config.ReadDynamoDBTableName("GameTable")); }
/// <summary> /// 构造函数 /// </summary> /// <param name="isRequiredTransaction">是否开启事务判断</param> public DaoTransactionScope(bool isRequiredTransaction) { //构建事务标记 if (CurrentFlag == null || CurrentFlag == "") CurrentFlag = new Random().Next(DateTime.Now.Millisecond).ToString(); //构建事务信息 if ((_daoTransactionScopeList == null) || (_daoTransactionScopeList.Count == 0)) { if (_daoTransactionScopeList == null) { _daoTransactionScopeList = new List<DaoTransactionScope>(); } _isTransacting = isRequiredTransaction; _daoTransactionScopeList.Add(this); _current = this; if (isRequiredTransaction) { _transactionOwner = this; } else { _transactionOwner = null; } _dataAccessInstance = null; } else { //if (_current == null) //{ // throw new NullReferenceException("当前的 DaoTransactionScope 对象(DaoTransactionScope.Current 属性值)已不存在。请在后面调用上一层 DaoTransactionScope 对象的 Complete() or Dispose() 方法。"); //} if (isRequiredTransaction && !_isTransacting) { _isTransacting = isRequiredTransaction; } _daoTransactionScopeList.Add(this); _current = this; if ((_transactionOwner == null) && isRequiredTransaction) { _transactionOwner = this; } } }
/// <summary> /// 数据回收操作 /// </summary> public void Dispose() { if (!this._isDisposed && _daoTransactionScopeList.Count > 0) { if (!this._isComplete) { this._isUnComplete = true; } string currentFlag = ""; for (int i = 0; i < _daoTransactionScopeList.Count; i++) { //if (DaoTransactionScopeList[i] == this) //{ if (currentFlag == "") currentFlag = DaoTransactionScopeList[i].CurrentFlag; _dataAccessInstance = _daoTransactionScopeList[i].DataAccessInstance; if (_dataAccessInstance != null && !_dataAccessInstance.Disposed && DaoTransactionScopeList[i].CurrentFlag == currentFlag) { if ((_dataAccessInstance.State != ConnectionState.Closed) && _dataAccessInstance.IsTransaction) { try { _dataAccessInstance.RollbackTransaction(); //清理失败的SQL语句 _dataAccessInstance.lastSql = null; } catch (Exception exception3) { //清理失败的SQL语句 _dataAccessInstance.lastSql = null; } finally { try { _dataAccessInstance.Dispose(); _dataAccessInstance = null; } catch { } } } } _daoTransactionScopeList[i].IsTransacting = false; } if (this == _transactionOwner) { _transactionOwner = null; } for (int i = _daoTransactionScopeList.Count - 1; i >= 0; i--) { if (_daoTransactionScopeList[i].IsTransacting == false) _daoTransactionScopeList.Remove(DaoTransactionScopeList[i]); } if (_daoTransactionScopeList.Count > 0) { _current = _daoTransactionScopeList[_daoTransactionScopeList.Count - 1]; } else { _current = null; } this._isDisposed = true; } }
/// <summary> /// 实现数据提交信息 /// </summary> public void Complete() { if (this.Disposed) { throw new ObjectDisposedException("DaoTransactionScope"); } if (_current == null) { throw new NullReferenceException("当前的 DaoTransactionScope 对象(DaoTransactionScope.Current 属性值)已不存在。请不要重复调用 Complete() 方法。"); } string currentFlag = ""; for (int i = 0; i < DaoTransactionScopeList.Count; i++) { if (currentFlag == "") currentFlag = DaoTransactionScopeList[i].CurrentFlag; if (DaoTransactionScopeList[i].IsTransacting && DaoTransactionScopeList[i].CurrentFlag == currentFlag) { _dataAccessInstance = DaoTransactionScopeList[i].DataAccessInstance; if ((_dataAccessInstance != null) && _dataAccessInstance.IsTransaction) { _dataAccessInstance.CommitTransaction(); } //DaoTransactionScopeList.Remove(DaoTransactionScopeList[i]); DaoTransactionScopeList[i].IsTransacting = false; try { _dataAccessInstance.Dispose(); _dataAccessInstance = null; } catch { } _transactionOwner = null; } } for (int i = DaoTransactionScopeList.Count - 1; i >= 0; i--) { if (DaoTransactionScopeList[i].IsTransacting == false) DaoTransactionScopeList.Remove(DaoTransactionScopeList[i]); } this._isComplete = true; _current = null; }