// GET: Register public async Task <ActionResult> Register() { var cultureName = GetCultureNameForPublishedContent(_umbracoHelper.CurrentPage); var model = new RegisterViewModel() { Culture = cultureName }; _umbracoMapper.Map(_umbracoHelper.CurrentPage, model); var dictionaryTerms = new RegisterDictionaryViewModel(); _umbracoMapper.MapUsingDictionary(dictionaryTerms); model.SetDictionary(dictionaryTerms); model.InternalDomains = await _registrationService.GetDomainsAsync(); model.InternalMailingLists = await RetrieveMailing(); model.Professions = await RetrieveProfessions(model.Culture); model.Specialties = await RetrieveSpecialties(model.Culture); model.ThankYouUrl = _umbracoHelper.GetNodeWithParent(_umbracoHelper.CurrentPage.Id, _nodeConfig.AboutPageAlias).Url; return(View("~/Views/Register.cshtml", model)); }
public async Task <JsonNetResult> Register(RegisterPostViewModel model) { var culture = GetCultureInformationForPublishedContent(_umbracoHelper.CurrentPage); var registerResponse = new GetRegisterResponse(); if (model == null) { registerResponse.Success = false; registerResponse.Message = "Error - Register Post Model is null;"; return(ReturnJsonResponse(registerResponse)); } if (!ModelState.IsValid) { var errors = GetErrorsFromModelState(ModelState); //Error to be displayed for the user //if model state is invalid (front-end validation is by-passed) then the error message displayed is not required to be localised model.ErrorMessage = errors.First(); registerResponse.Success = false; registerResponse.ResponseData = model; registerResponse.Message = errors.First(); return(ReturnJsonResponse(registerResponse)); } var requestDto = _mapper.Map <RegisterPostViewModel, RegistrationRequestDTO>(model); requestDto.Locale = culture.Locale; requestDto.CountryCode = culture.CountryCode; var responseDto = await _registrationService.SaveAsync(requestDto); if (responseDto.Status == (int)ResponseStatus.Failure) { registerResponse.Success = false; model.ErrorMessage = responseDto.Message; registerResponse.ResponseData = model; registerResponse.Message = responseDto.Message; return(ReturnJsonResponse(registerResponse)); } var syncResult = await _syncService.SynchroniseUmbracoMember(culture.Locale, culture.CountryCode, model.EmailAddressValue, model.PasswordValue); if (!syncResult) { registerResponse.Success = false; model.ErrorMessage = "Error - Umbraco Member Registration failed"; registerResponse.ResponseData = model; registerResponse.Message = string.Empty; return(ReturnJsonResponse(registerResponse)); } string validationStatusMessage = null; var validationStatus = _umbracoHelper.GetMemberPropertyValue <int>(model.EmailAddressValue, _nodeConfig.MemberStatusPropertyName); if (validationStatus == (int)MemberValidationStatus.Pending) { var dictionaryTerms = new RegisterDictionaryViewModel(); _umbracoMapper.MapUsingDictionary(dictionaryTerms); validationStatusMessage = dictionaryTerms.ValidationStatusMessage; } registerResponse.Success = true; registerResponse.Message = validationStatusMessage; registerResponse.ResponseData = model; return(ReturnJsonResponse(registerResponse)); }