public IHttpActionResult AddToGroup([FromUri] int groupId, [FromBody] User person) { if (!ModelState.IsValid) { var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message); var dataError = new ApiErrorDto("AddToGroup Data Invalid", new InvalidOperationException("Invalid AddToGroup Data " + errors)); throw new HttpResponseException(dataError.HttpResponseMessage); } return(Authorized(token => { try { _finderService.AddUserDirectlyToGroup(token, person, groupId, _trialMemberRoleId); return (Ok()); } catch (DuplicateGroupParticipantException dup) { throw new HttpResponseException(HttpStatusCode.Conflict); } catch (Exception e) { _logger.Error($"Could not add participant {person.firstName + " " + person.lastName} ({person.email}) to group {3}", e); var apiError = new ApiErrorDto("AddToGroup Failed", e, HttpStatusCode.InternalServerError); throw new HttpResponseException(apiError.HttpResponseMessage); } })); }