public AnywhereRegistration CreateAnywhereRegistration(AnywhereRegistration registration, int projectId, string token) { try { var apiToken = _apiUserRepository.GetToken(); var mpGroupConnector = _groupConnectorService.GetGroupConnectorByProjectId(projectId, apiToken); registration.GroupConnectorId = mpGroupConnector.Id; var participantId = RegistrationContact(registration, token); var registrationId = CreateAnywhereRegistrationDto(registration, participantId); ChildAgeGroups(registration, registrationId); Observable.Start(() => SendMail(registration)); return(registration); } catch (DuplicateUserException e) { _logger.Error(e.Message, e); throw; } catch (Exception e) { const string msg = "Go Volunteer Service: CreateAnywhereRegistration"; _logger.Error(msg, e); throw new Exception(msg, e); } }
private void ChildAgeGroups(AnywhereRegistration registration, int registrationId) { var ageGroup = new ChildrenAttending { Count = registration.NumberOfChildren, Id = _configurationWrapper.GetConfigIntValue("GoLocalRegistrationChildrenAttribute") }; _registrationService.AddAgeGroup(registrationId, ageGroup.Id, ageGroup.Count); }
private int CreateAnywhereRegistrationDto(AnywhereRegistration registration, int participantId) { var registrationDto = new MpRegistration(); registrationDto.ParticipantId = participantId; var preferredLaunchSiteId = PreferredLaunchSite(registration); registrationDto.PreferredLaunchSiteId = preferredLaunchSiteId; registrationDto.InitiativeId = registration.InitiativeId; registrationDto.SpouseParticipation = registration.SpouseParticipation; registrationDto.OrganizationId = registration.OrganizationId == 0 ? _configurationWrapper.GetConfigIntValue("CrossroadsOrganizationId") : registration.OrganizationId; var registrationId = Registration(registrationDto); registrationDto.RegistrationId = registrationId; _groupConnectorService.CreateGroupConnectorRegistration(registration.GroupConnectorId, registrationId); return(registrationId); }
private Dictionary <string, object> SetupAnywhereMergeData(AnywhereRegistration registration, string projectLeaderName) { var adultsParticipating = registration.SpouseParticipation ? 2 : 1; var birthDate = DateTime.Parse(registration.Self.DateOfBirth); var merge = new Dictionary <string, object> { { "Nickname", registration.Self.FirstName }, { "LastName", registration.Self.LastName }, { "Participant_Email_Address", registration.Self.EmailAddress }, { "Date_Of_Birth", birthDate.Month + "/" + birthDate.Day + "/" + birthDate.Year }, { "Mobile_Phone", registration.Self.MobilePhone }, { "Spouse_Participating", registration.SpouseParticipation ? "Yes": "No" }, { "Number_Of_Children", registration.NumberOfChildren }, { "Group_Connector", projectLeaderName }, { "Adults_Participating", adultsParticipating }, { "Total_Volunteers", registration.NumberOfChildren + adultsParticipating }, { "Base_Url", _configurationWrapper.GetConfigValue("BaseUrl") } }; return(merge); }
public IHttpActionResult Post([FromBody] AnywhereRegistration goVolunteerRegistration, int projectId) { try { if (ModelState.IsValid) { return(Authorized(token => Ok(_goVolunteerService.CreateAnywhereRegistration(goVolunteerRegistration, projectId, token)))); } var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.ErrorMessage); var dataError = new ApiErrorDto("Registration Data Invalid", new InvalidOperationException("Invalid Registration Data" + errors)); throw new HttpResponseException(dataError.HttpResponseMessage); } catch (DuplicateUserException e) { throw new HttpResponseException(HttpStatusCode.Conflict); } catch (Exception e) { var msg = "GoVolunteerRegistrationController: POST " + goVolunteerRegistration; logger.Error(msg, e); var apiError = new ApiErrorDto(msg, e); throw new HttpResponseException(apiError.HttpResponseMessage); } }
private MpRegistration BuildRegistrationDto(int participantId, int preferredLaunchSiteId, AnywhereRegistration registration) { return(new MpRegistration() { ParticipantId = participantId, PreferredLaunchSiteId = preferredLaunchSiteId, InitiativeId = registration.InitiativeId, SpouseParticipation = registration.SpouseParticipation, OrganizationId = _crossroadsOrganizationId }); }