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()); } }
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()); }