protected override void Execute(IWorkflowActivityContext context) { this.EnsureNotNull(context, nameof(context)); var activityContext = context.GetExecutionContext(); var email = TargetEmail.Get(activityContext); var applyTo = ApplyTo.Get(activityContext); if (email == null) { return; } if (applyTo.IsNullOrWhiteSpace()) { return; } var role = Role.Get(activityContext); var team = Team.Get(activityContext); if (role == null && team == null) { return; } var roleUsers = GetRoleUsers(context, role); context.TracingService.Trace($"Found {roleUsers?.Count()} for role {role?.Id}"); var teamUsers = GetTeamUsers(context, team); context.TracingService.Trace($"Found {teamUsers?.Count()} for team {team?.Id}"); var users = roleUsers.Union(teamUsers).ToArray(); if (users.Any()) { UpdateEmail( context, email, applyTo, users); } }