private void OnSelfAssessmentRemoved(IDbTransaction tx, ICommit commit, SkillSelfAssessmentRemoved @event) { RecordActivity(tx, new Models.Activity { UserId = @event.SelfAssessment.UserId, Type = (int)ActivityType.SelfAssessmentRemoved, When = commit.CommitStamp, Link = @event.SelfAssessment.SkillId.ToString() }); }
void Apply(SkillSelfAssessmentRemoved @event) { if (_selfAssessments.ContainsKey(@event.SelfAssessment.SkillId)) { // Remove the self assessment. _selfAssessments[@event.SelfAssessment.SkillId].Remove(@event.SelfAssessment.CreatedAt.ToUnixTimeMilliseconds()); // Remove the skill index, if it is empty. if (_selfAssessments[@event.SelfAssessment.SkillId].Count == 0) { _selfAssessments.Remove(@event.SelfAssessment.SkillId); } } }
private void RemoveSelfAssessment(IDbTransaction tx, ICommit commit, SkillSelfAssessmentRemoved @event) { // A self assessment has been removed. // If the removed self assessment has a previous assessment then update the table, otherwise remove it where the dates match. if (@event.PreviousSelfAssessment != null) { // Update the table. var sqlParameters = new { @event.SelfAssessment.UserId, @event.SelfAssessment.SkillId, @event.PreviousSelfAssessment.SelfAssessmentLevelId, @event.PreviousSelfAssessment.Score, @event.PreviousSelfAssessment.CreatedAt }; const string sql = @" UPDATE [dbo].[SelfAssessmentProjector.SelfAssessment] SET SelfAssessmentLevelId = @SelfAssessmentLevelId, Score = @Score, CreatedAt = @CreatedAt WHERE UserId = @UserId AND SkillId = @SkillId;" ; tx.Connection.Execute(sql, (object)sqlParameters, tx); } else { // Remove from the table. var sqlParameters = new { @event.SelfAssessment.UserId, @event.SelfAssessment.SkillId, @event.SelfAssessment.CreatedAt }; const string sql = @" DELETE FROM [dbo].[SelfAssessmentProjector.SelfAssessment] WHERE UserId = @UserId AND SkillId = @SkillId AND CreatedAt = @CreatedAt;" ; tx.Connection.Execute(sql, (object)sqlParameters, tx); } }