コード例 #1
0
ファイル: FoldUser.cs プロジェクト: dersia/FoldingBenchmark
        private static User ImmutableApply(User state, EventBase @event)
        {
            var alreadyRegistered = string.IsNullOrWhiteSpace(state.UserId);

            return(@event switch {
                NoopEvent _ => state,
                RoomAssigned _ => state,
                UserRegistered registered => alreadyRegistered ? state : new User {
                    UserId = registered.UserId, FirstName = registered.FirstName, LastName = registered.LastName
                },
                UserChangedName changedName => alreadyRegistered ? new User {
                    UserId = changedName.UserId, FirstName = changedName.FirstName, LastName = changedName.LastName, TimesVoted = state.TimesVoted
                } : state,
                UserVoted voted => alreadyRegistered ? new User {
                    UserId = state.UserId, FirstName = state.FirstName, LastName = state.LastName, TimesVoted = ++state.TimesVoted
                } : state,
                _ => state
            });
コード例 #2
0
 public void Apply(RoomAssigned aggregateEvent)
 {
 }