private void OnPlacementUpdated(IDbTransaction tx, ICommit commit, PlacementUpdated @event) { RecordActivity(tx, new Models.Activity { UserId = @event.UserId, Type = (int)ActivityType.PlacementUpdated, When = @event.LastUpdatedAt, Link = commit.AggregateId().ToString() }); }
void Apply(PlacementUpdated @event) { Title = @event.Title; Start = @event.Start; End = @event.End; Reference = @event.Reference; LastUpdatedBy = @event.LastUpdatedBy; LastUpdatedAt = @event.LastUpdatedAt; }
private void OnPlacementUpdated(IDbTransaction tx, ICommit commit, PlacementUpdated @event) { var placementSqlParams = new { Id = commit.AggregateId(), Where = @event.FullyQualifiedTitle }; // Get the original where Placement. const string sql1 = @" SELECT [Where] FROM [dbo].[WhereProjector.Placement] WHERE [PlacementId] = @Id;" ; var row = tx.Connection.QuerySingle <dynamic>(sql1, (object)placementSqlParams, tx); var originalWhere = row.Where; const string sql2 = @" UPDATE [dbo].[WhereProjector.Placement] SET [Where] = @Where WHERE [PlacementId] = @Id;" ; tx.Connection.Execute(sql2, (object)placementSqlParams, tx); var whereSqlParams = new { UserId = @event.UserId, Where = @event.FullyQualifiedTitle, OriginalWhere = originalWhere }; const string sql = @" DECLARE @where_count int; SELECT @where_count = [UsageCount] FROM [dbo].[WhereProjector.Where] WHERE [UserId] = @UserId AND [Name] = @OriginalWhere; DELETE FROM [dbo].[WhereProjector.Where] WHERE [UserId] = @UserId AND [Name] = @OriginalWhere; UPDATE [dbo].[WhereProjector.Where] SET [UsageCount] = [UsageCount] + @where_count WHERE [UserId] = @UserId AND [Name] = @Where; INSERT INTO [dbo].[WhereProjector.Where] ([UserId] ,[Name] ,[UsageCount]) SELECT @UserId ,@Where ,@where_count WHERE NOT EXISTS(SELECT * FROM [dbo].[WhereProjector.Where] WHERE [UserId] = @UserId AND [Name] = @Where);" ; tx.Connection.Execute(sql, (object)whereSqlParams, tx); }
private void OnPlacementUpdated(IDbTransaction tx, ICommit commit, PlacementUpdated @event) { var sqlParams = @event.ToDynamic(); sqlParams.Id = commit.AggregateId(); const string sql = @" UPDATE [dbo].[PlacementProjector.Placement] SET [Title] = @Title ,[FullyQualifiedTitle] = @FullyQualifiedTitle ,[Start] = @Start ,[End] = @End ,[Reference] = @Reference ,[LastUpdatedBy] = @LastUpdatedBy ,[LastUpdatedAt] = @LastUpdatedAt WHERE Id = @Id; UPDATE [PlacementProjector.Entry] SET [Where] = @FullyQualifiedTitle WHERE [PlacementProjector.Entry].PlacementId = @Id;" ; tx.Connection.Execute(sql, (object)sqlParams, tx); }