public void TestUnitOfWorkWithCommit() { var bus = new FakeBus(); var events = new ClaimsEventHandler(bus); var storage = new EventStore(bus); var eventStoreRepository = new Repository <Claim>(storage, @"c:\shibutemp\eventstore.txt"); var emailProvider = new TextEmailProvider(@"c:\shibutemp\emaillog.txt"); var connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyTest;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; using (var connection = new System.Data.SqlClient.SqlConnection(connectionString)) { connection.Open(); var unitOfWork = new UnitOfWork(connection).WithTransaction(); //var unitOfWork = new UnitOfWork(connection); var queryService = new MyCqrs.Persistent.ClaimsQueryService(unitOfWork); var commandService = new MyCqrs.Persistent.ClaimsCommandService(unitOfWork); var commands = new ClaimsCommandHandler(bus, queryService, commandService, eventStoreRepository, emailProvider); RegisterCommandHandles(bus, commands); RegisterEventHandles(bus, events); var claimNo = "C009"; var command = new ClaimFileCommand(claimNo, 10, DateTime.Now); // bus.Send(command); var claimRejectedCommand = new ClaimRejectedCommand(claimNo, "r_user1", DateTime.Now); bus.Send(claimRejectedCommand); //var claimApprovedCommand = new ClaimApprovedCommand(claimNo, "a_user1", DateTime.Now); //bus.Send(claimApprovedCommand); unitOfWork.Commit(); //unitOfWork.Rollback(); } var eventDatas = TextEventStoreProvider.GetEventData("4eba9d9f-d64b-4d98-9fa6-2bced2695143"); Assert.Pass(); }
public void RejectClaim(ClaimRejectedCommand command) { string sql = "UPDATE [Distribution].[Claims] SET [ClaimStatus] = @ClaimStatus, [ClaimReviewedBy] = @ClaimReviewedBy WHERE [ClaimNo] = @ClaimNo "; var parameters = new { ClaimNo = command.ClaimNo, ClaimStatus = Claims.Domain.ClaimState.Rejected.ToString(), ClaimReviewedBy = command.ReviewedBy }; if (unitOfWork.HasTransactions) { unitOfWork.DbConnection.Execute(sql, parameters, unitOfWork.DbTransaction); } else { unitOfWork.DbConnection.Execute(sql, parameters); } }