public virtual ActionResult Register(NewMemberModel model)
        {
            if (!ModelState.IsValid)
            {
                return(CurrentUmbracoPage());
            }

            var logData = new ExtendedLoggerData();

            logData.AddCategory("Merchello");
            logData.AddCategory("FastTrack");

            var registerModel = Members.CreateRegistrationModel(model.MemberTypeAlias);

            registerModel.Name            = model.Email;
            registerModel.Email           = model.Email;
            registerModel.Password        = model.Password;
            registerModel.Username        = model.Email;
            registerModel.UsernameIsEmail = true;

            var fn = new UmbracoProperty {
                Alias = "firstName", Name = "First Name", Value = model.FirstName
            };
            var ln = new UmbracoProperty {
                Alias = "lastName", Name = "Last Name", Value = model.LastName
            };

            registerModel.MemberProperties.Add(fn);
            registerModel.MemberProperties.Add(ln);

            MembershipCreateStatus status;

            //// Add a message for the attempt
            MultiLogHelper.Info <CustomerMembershipController>("Registering a new member", logData);

            var member = Members.RegisterMember(registerModel, out status, model.PersistLogin);


            var registration = NewMemberModelFactory.Create(model, status);

            if (registration.ViewData.Success)
            {
                var membership = _memberService.GetByEmail(model.Email);

                if (member != null)
                {
                    _memberService.AssignRole(membership.Id, "Customers");
                    _memberService.Save(membership);
                }

                return(model.SuccessRedirectUrl.IsNullOrWhiteSpace()
                           ? Redirect("/")
                           : Redirect(model.SuccessRedirectUrl));
            }
            else
            {
                ViewData["MerchelloViewData"] = model.ViewData;
                return(CurrentUmbracoPage());
            }
        }
Example #2
0
        public async Task <ServiceResult <MemberModel> > AddMember(NewMemberModel model, string userId)
        {
            var project = await _dbContext.Projects
                          .FirstOrDefaultAsync(p => p.Id == model.ProjectId &&
                                               p.DeletedByUserId == null &&
                                               p.Members.Any(m => m.MemberId == userId && HeadOfProjectRoles.Contains(m.Role)));

            if (project == null)
            {
                return(ServiceResult <MemberModel> .NotFound("Project not found or you are cant moderate it"));
            }

            var alreadyExistMember = project.Members.Any(m => m.MemberId == model.MemberId);

            if (alreadyExistMember)
            {
                return(ServiceResult <MemberModel> .Error("User already in project"));
            }

            var newMember = (Member) new Member(userId).InjectFrom(model);

            project.Members.Add(newMember);
            var count = await _dbContext.SaveChangesAsync();

            if (count != 1)
            {
                return(ServiceResult <MemberModel> .Error("Something went wrong"));
            }

            var memberModel = (MemberModel) new MemberModel().InjectFrom(newMember);

            return(ServiceResult <MemberModel> .Ok(memberModel));
        }
        public ActionResult Create(NewMemberModel viewModel)
        {
            try
            {
                var googleRecaptcha = new Models.GoogleReCaptchaValidator(Request);
                if (!googleRecaptcha.ValidateRequest())
                {
                    throw new Exception("Please fill out the reCAPTCHA");
                }

                if (ModelState.IsValid)
                {
                    viewModel.CreateMember();
                    return(RedirectToAction("AccountCreated"));
                }
            }
            catch (Exception ex)
            {
                while (ex != null)
                {
                    ModelState.AddModelError("", ex.Message);
                    ex = ex.InnerException;
                }
            }

            return(View());
        }