public void RegisterForEvent(EventRsvpDto eventDto, string token) { var defaultGroupRoleId = AppSetting("Group_Role_Default_ID"); var today = DateTime.Today; try { var saved = eventDto.Participants.Select(participant => { var groupParticipantId = _groupParticipantService.Get(eventDto.GroupId, participant.ParticipantId); if (groupParticipantId == 0) { groupParticipantId = _groupService.addParticipantToGroup(participant.ParticipantId, eventDto.GroupId, defaultGroupRoleId, participant.ChildcareRequested, today); } // validate that there is not a participant record before creating var retVal = Functions.IntegerReturnValue( () => !_eventService.EventHasParticipant(eventDto.EventId, participant.ParticipantId) ? _eventService.RegisterParticipantForEvent(participant.ParticipantId, eventDto.EventId, eventDto.GroupId, groupParticipantId) : 1); return(new RegisterEventObj() { EventId = eventDto.EventId, ParticipantId = participant.ParticipantId, RegisterResult = retVal, ChildcareRequested = participant.ChildcareRequested }); }).ToList(); SendRsvpMessage(saved, token); } catch (Exception e) { throw new ApplicationException("Unable to add event participant: " + e.Message); } }
public IHttpActionResult RsvpToEvent([FromBody] EventRsvpDto eventRsvp) { if (ModelState.IsValid) { return(Authorized(token => { try { _eventService.RegisterForEvent(eventRsvp, token); return Ok(); } catch (Exception e) { var apiError = new ApiErrorDto("Save Event Rsvp", e); throw new HttpResponseException(apiError.HttpResponseMessage); } })); } var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message); var dataError = new ApiErrorDto("Event Data Invalid", new InvalidOperationException("Invalid Event Data" + errors)); throw new HttpResponseException(dataError.HttpResponseMessage); }