示例#1
0
        public void Handle(TeamUserApprovedEvent domainEvent)
        {
            LogToConsole(domainEvent);

            dynamic eventData = JsonConvert.DeserializeObject(domainEvent.JsonPayload);

            var membership = _teamMembershipRepository.Get()
                             .FirstOrDefault(m =>
                                             m.TeamId == domainEvent.AggregateId &&
                                             m.UserId == eventData.UserId);

            membership.Approved = true;

            _teamMembershipRepository.Update(membership);
        }
示例#2
0
        public void Approve(User user)
        {
            CheckIfCreated();
            CheckIfDeleted();

            if (!Users.Any(u => u.Id == user.Id))
            {
                throw new ArgumentException("Cannot approve user that hasn't joined");
            }

            var payload     = new { UserId = user.Id };
            var jsonPayload = JsonConvert.SerializeObject(payload);

            var teamUserApprovedEvent = new TeamUserApprovedEvent(
                Id,
                Version + 1,
                jsonPayload);

            Apply(teamUserApprovedEvent);
        }