private SqlCommand CreateSqlCommand(EventProviderTransaction transaction, IReadOnlyCollection <EventStreamRevision> uncommittedRevisions) { var sqlCommand = new SqlCommand("[dbo].[CreateTransaction]"); sqlCommand.CommandType = CommandType.StoredProcedure; var command = transaction.Command; var eventProvider = transaction.EventProvider; var commandType = command.GetType(); // set return parameter sqlCommand.Parameters.Add(_result); // set parameters sqlCommand.Parameters.Add("@transactionId", SqlDbType.UniqueIdentifier).Value = transaction.Identity.Value; sqlCommand.Parameters.Add("@metadata", SqlDbType.VarBinary).Value = _serializer.SerializeObject(transaction.Metadata); sqlCommand.Parameters.Add("@commandId", SqlDbType.UniqueIdentifier).Value = command.CommandId; sqlCommand.Parameters.Add("@commandTypeId", SqlDbType.Binary, 16).Value = _typeFactory.GetHash(commandType); sqlCommand.Parameters.Add("@commandTypeFullName", SqlDbType.VarChar, 512).Value = commandType.FullName; sqlCommand.Parameters.Add("@commandData", SqlDbType.VarBinary).Value = _serializer.SerializeObject(command); sqlCommand.Parameters.Add("@eventProviderId", SqlDbType.UniqueIdentifier).Value = eventProvider.Identity.Value; sqlCommand.Parameters.Add("@aggregateRootId", SqlDbType.UniqueIdentifier).Value = eventProvider.AggregateRootIdentity.Value; sqlCommand.Parameters.Add("@aggregateRootTypeId", SqlDbType.Binary, 16).Value = _typeFactory.GetHash(eventProvider.AggregateRootType.Type); sqlCommand.Parameters.Add("@aggregateRootTypeFullName", SqlDbType.VarChar, 512).Value = eventProvider.AggregateRootType.Type.FullName; sqlCommand.Parameters.Add("@eventProviderDescriptor", SqlDbType.VarChar).Value = transaction.Descriptor.Value; // event user defined table type sqlCommand.Parameters.Add(new SqlParameter("@events", SqlDbType.Structured) { TypeName = "[dbo].[udttEvent]", Value = GetEventDataTable(uncommittedRevisions) }); return(sqlCommand); }
private SqlCommand CreateSqlCommand(AggregateRootType aggregateRootType, int skip, int take) { var sqlCommand = new SqlCommand("[dbo].[GetTransactionsByAggregateRootType]"); sqlCommand.CommandType = CommandType.StoredProcedure; // set parameters sqlCommand.Parameters.Add("@aggregateRootTypeId", SqlDbType.Binary, 16).Value = _typeFactory.GetHash(aggregateRootType.Type); sqlCommand.Parameters.Add("@skip", SqlDbType.Int).Value = skip; sqlCommand.Parameters.Add("@take", SqlDbType.Int).Value = take; return(sqlCommand); }
private SqlCommand CreateSqlCommand(ITypeFactory typeFactory, ProjectionInstance instance) { var sqlCommand = new SqlCommand("[dbo].[SetProjectionPosition]"); sqlCommand.CommandType = CommandType.StoredProcedure; // set return parameter sqlCommand.Parameters.Add(_result); var projectionType = instance.ProjectionType; // set parameters sqlCommand.Parameters.Add("@projectionTypeId", SqlDbType.Binary, 16).Value = typeFactory.GetHash(projectionType.Type); sqlCommand.Parameters.Add("@projectionTypeFullName", SqlDbType.VarChar, 512).Value = projectionType.Type.FullName; sqlCommand.Parameters.Add("@eventProviderId", SqlDbType.UniqueIdentifier).Value = instance.EventProviderIdentity.Value; sqlCommand.Parameters.Add("@eventProviderVersion", SqlDbType.Int).Value = instance.Position.Value; return(sqlCommand); }
private SqlCommand CreateSqlCommand(AggregateRootType aggregateRootType, AggregateRootIdentity identity) { var sqlCommand = new SqlCommand("[dbo].[GetDomainEvents]"); sqlCommand.CommandType = CommandType.StoredProcedure; // set parameters sqlCommand.Parameters.Add("@aggregateRootId", SqlDbType.UniqueIdentifier).Value = identity.Value; sqlCommand.Parameters.Add("@aggregateRootTypeId", SqlDbType.Binary, 16).Value = _typeFactory.GetHash(aggregateRootType.Type); return(sqlCommand); }
private SqlCommand CreateSqlCommand(ITypeFactory typeFactory, ProjectionType projectionType, EventProviderIdentity eventProviderIdentity) { var sqlCommand = new SqlCommand("[dbo].[GetProjectionPosition]"); sqlCommand.CommandType = CommandType.StoredProcedure; // set parameters sqlCommand.Parameters.Add("@projectionId", SqlDbType.UniqueIdentifier).Value = typeFactory.GetHash(projectionType.Type); sqlCommand.Parameters.Add("@eventProviderId", SqlDbType.UniqueIdentifier).Value = eventProviderIdentity.Value; return(sqlCommand); }