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);
        }
コード例 #2
0
        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);
        }
コード例 #4
0
        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);
        }