Esempio n. 1
0
 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()
     });
 }
Esempio n. 2
0
 void Apply(PlacementUpdated @event)
 {
     Title         = @event.Title;
     Start         = @event.Start;
     End           = @event.End;
     Reference     = @event.Reference;
     LastUpdatedBy = @event.LastUpdatedBy;
     LastUpdatedAt = @event.LastUpdatedAt;
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }