public SetPositionCommand(ITypeFactory typeFactory,
                                  ProjectionInstance instance)
        {
            Contract.Requires(typeFactory != null);
            Contract.Requires(instance != null);

            _result = new SqlParameter("result", SqlDbType.Int)
            {
                Direction = ParameterDirection.ReturnValue
            };

            _command = CreateSqlCommand(typeFactory, instance);
        }
Exemple #2
0
        public Task SetPositionAsync(ProjectionInstance instance)
        {
            // establish command
            var command = new SetPositionCommand(_typeFactory, instance);

            // create connection
            using (var conn = new SqlConnection(_connectionString))
            {
                // connection needs to be open before executing
                conn.Open();

                // execute
                return(command.ExecuteAsync(conn));
            }
        }
        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);
        }
 internal Projection CreateProjection(ProjectionInstance instance)
 {
     return (constructor ?? GetConstructor()) (instance);
 }