Exemplo n.º 1
0
        // 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));
        }
Exemplo n.º 2
0
        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));
        }