예제 #1
0
 public async Task HandleAsync(UserDisplayNameChangedEvent message)
 {
     var accountId      = message.AggregateRootKey.ToString();
     var updateCriteria = new UpdateCriteria <AccountTableObject> {
         { x => x.DisplayName, message.DisplayName }
     };
     Expression <Func <AccountTableObject, bool> > updateSpecification = x => x.Id == accountId;
     await gateway.UpdateAsync <AccountTableObject>(updateCriteria, updateSpecification);
 }
예제 #2
0
        public async Task HandleAsync(UserDisplayNameChangedEvent message)
        {
            var userId = message.AggregateRootKey.ToString();
            var networkTableUpdateBatch = new List <Tuple <UpdateCriteria <NetworkTableObject>, Specification <NetworkTableObject> > >();
            Expression <Func <NetworkTableObject, bool> > originatorEqualsSpecification = x => x.OriginatorId == userId;
            Expression <Func <NetworkTableObject, bool> > targetUserEqualsSpecification = x => x.TargetId == userId;

            networkTableUpdateBatch.Add(new Tuple <UpdateCriteria <NetworkTableObject>, Specification <NetworkTableObject> >(
                                            new UpdateCriteria <NetworkTableObject> {
                { x => x.OriginatorName, message.DisplayName }
            }, originatorEqualsSpecification));
            networkTableUpdateBatch.Add(new Tuple <UpdateCriteria <NetworkTableObject>, Specification <NetworkTableObject> >(
                                            new UpdateCriteria <NetworkTableObject> {
                { x => x.TargetUserName, message.DisplayName }
            }, targetUserEqualsSpecification));
            await this.tableGateway.UpdateAsync <NetworkTableObject>(networkTableUpdateBatch);

            var userNamesTableUpdateCriteria = new UpdateCriteria <UserNameTableObject> {
                { x => x.DisplayName, message.DisplayName }
            };
            Expression <Func <UserNameTableObject, bool> > userIdSpecification = x => x.UserId == userId;

            await this.tableGateway.UpdateAsync <UserNameTableObject>(userNamesTableUpdateCriteria, userIdSpecification);
        }
예제 #3
0
 private void HandleChangeDisplayNameEvent(UserDisplayNameChangedEvent evnt)
 {
     this.DisplayName = evnt.DisplayName;
 }