public void addParticipantToGroupNoEvents(int groupId, ParticipantSignup participant) { MpGroup group; try { group = _mpGroupRepository.getGroupDetails(groupId); } catch (Exception e) { var message = String.Format("Could not retrieve group details for group {0}: {1}", groupId, e.Message); _logger.Error(message, e); throw (new ApplicationException(message, e)); } checkSpaceRemaining(new List <ParticipantSignup> { participant }, group); try { var roleId = participant.groupRoleId ?? _groupRoleDefaultId; var participantId = participant.particpantId.Value; var groupParticipantId = _mpGroupRepository.addParticipantToGroup(participantId, Convert.ToInt32(groupId), roleId, participant.childCareNeeded, DateTime.Now, null, false, participant.EnrolledBy); var configuration = MpObjectAttributeConfigurationFactory.GroupParticipant(); _objectAttributeService.SaveObjectAttributes(groupParticipantId, participant.AttributeTypes, participant.SingleAttributes, configuration); if (participant.capacityNeeded > 0) { DecrementCapacity(participant.capacityNeeded, group); } } catch (Exception e) { _logger.Error("Could not add user to group", e); throw; } }
public List <GroupParticipantDTO> GetGroupParticipants(int groupId, bool active = true) { var groupParticipants = _mpGroupRepository.GetGroupParticipants(groupId, active); if (groupParticipants == null) { return(null); } var participants = groupParticipants.Select(Mapper.Map <MpGroupParticipant, GroupParticipantDTO>).ToList(); var configuration = MpObjectAttributeConfigurationFactory.GroupParticipant(); var apiToken = _apiUserService.GetToken(); foreach (var participant in participants) { var attributesTypes = _objectAttributeService.GetObjectAttributes(apiToken, participant.GroupParticipantId, configuration); participant.AttributeTypes = attributesTypes.MultiSelect; participant.SingleAttributes = attributesTypes.SingleSelect; } return(participants); }
public void addParticipantsToGroup(int groupId, List <ParticipantSignup> participants) { MpGroup group; try { group = _mpGroupRepository.getGroupDetails(groupId); } catch (Exception e) { var message = String.Format("Could not retrieve group details for group {0}: {1}", groupId, e.Message); _logger.Error(message, e); throw (new ApplicationException(message, e)); } checkSpaceRemaining(participants, group); try { foreach (var participant in participants) { var roleId = participant.groupRoleId ?? _groupRoleDefaultId; var participantId = participant.particpantId.Value; int groupParticipantId = _mpGroupRepository.GetParticipantGroupMemberId(Convert.ToInt32(groupId), participantId); if (groupParticipantId < 0) { groupParticipantId = _mpGroupRepository.addParticipantToGroup(participantId, Convert.ToInt32(groupId), roleId, participant.childCareNeeded, DateTime.Now); var configuration = MpObjectAttributeConfigurationFactory.GroupParticipant(); _objectAttributeService.SaveObjectAttributes(groupParticipantId, participant.AttributeTypes, participant.SingleAttributes, configuration); if (participant.capacityNeeded > 0) { DecrementCapacity(participant.capacityNeeded, group); } _logger.Debug("Added user - group/participant id = " + groupParticipantId); } else { _logger.Debug("User " + participantId + " was already a member of group " + groupId); } var events = _mpGroupRepository.getAllEventsForGroup(Convert.ToInt32(groupId), _dateTimeWrapper.Today); _logger.Debug("Scheduled events for this group: " + events); if (events != null && events.Count > 0) { foreach (var e in events.Where(x => x.EventType != (Convert.ToString(_childcareEventTypeId)))) { //SafeRegisterParticipant will not register again if they are already registered _eventService.SafeRegisterParticipant(e.EventId, participantId, groupId, groupParticipantId); _logger.Debug("Added participant " + participant + " to group event " + e.EventId); } } if (participant.SendConfirmationEmail) { var waitlist = group.GroupType == _configurationWrapper.GetConfigIntValue("GroupType_Waitlist"); _mpGroupRepository.SendCommunityGroupConfirmationEmail(participantId, groupId, waitlist, participant.childCareNeeded); } } } catch (Exception e) { _logger.Error("Could not add user to group", e); throw; } }
public void addParticipantsToGroup(int groupId, List <ParticipantSignup> participants) { MpGroup group; try { group = _mpGroupService.getGroupDetails(groupId); } catch (Exception e) { var message = String.Format("Could not retrieve group details for group {0}: {1}", groupId, e.Message); _logger.Error(message, e); throw (new ApplicationException(message, e)); } checkSpaceRemaining(participants, group); try { foreach (var participant in participants) { int groupParticipantId; var roleId = participant.groupRoleId ?? _groupRoleDefaultId; var participantId = participant.particpantId.Value; groupParticipantId = _mpGroupService.addParticipantToGroup(participantId, Convert.ToInt32(groupId), roleId, participant.childCareNeeded, DateTime.Now); var configuration = MpObjectAttributeConfigurationFactory.GroupParticipant(); _objectAttributeService.SaveObjectAttributes(groupParticipantId, participant.AttributeTypes, participant.SingleAttributes, configuration); if (participant.capacityNeeded > 0) { DecrementCapacity(participant.capacityNeeded, group); } _logger.Debug("Added user - group/participant id = " + groupParticipantId); // Now see what future events are scheduled for this group, and register the user for those var events = _mpGroupService.getAllEventsForGroup(Convert.ToInt32(groupId)); _logger.Debug("Scheduled events for this group: " + events); if (events != null && events.Count > 0) { foreach (var e in events.Where(x => x.EventType != "Childcare")) { _eventService.RegisterParticipantForEvent(participantId, e.EventId, groupId, groupParticipantId); _logger.Debug("Added participant " + participant + " to group event " + e.EventId); } } if (participant.SendConfirmationEmail) { var waitlist = group.GroupType == _configurationWrapper.GetConfigIntValue("GroupType_Waitlist"); _mpGroupService.SendCommunityGroupConfirmationEmail(participantId, groupId, waitlist, participant.childCareNeeded); } } } catch (Exception e) { _logger.Error("Could not add user to group", e); throw; } }