private void OnEntryCollaboratorRemoved(IDbTransaction tx, ICommit commit, EntryCollaboratorRemoved @event) { RecordActivity(tx, new Models.Activity { UserId = @event.UserId, Type = (int)ActivityType.EntryCollaboratorRemoved, When = commit.CommitStamp, Link = commit.AggregateId().ToString() }); }
private void OnEntryCollaboratorRemoved(IDbTransaction tx, ICommit commit, EntryCollaboratorRemoved @event) { var sqlParams = new { EntryId = commit.AggregateId(), @event.UserId }; const string sql = @" DELETE FROM [dbo].[PlacementProjector.EntrySharedWith] WHERE [EntryId] = @EntryId AND [UserId] = @UserId; UPDATE [PlacementProjector.Entry] SET [Shared] = CASE WHEN EXISTS (SELECT 1 FROM [dbo].[PlacementProjector.EntrySharedWith] WHERE [EntryId] = @EntryId) THEN 1 ELSE 0 END WHERE [Id] = @EntryId;" ; tx.Connection.Execute(sql, (object)sqlParams, tx); }
void Apply(EntryCollaboratorRemoved @event) { _sharedWith.Remove(@event.CollaboratorId); }