Beispiel #1
0
        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);
                }
            }));
        }