public async Task<RegisterAndAssociateOrderResult> RegisterAndAssociateOrder(RegisterModel model, Order order) { if (!_registrationService.CheckEmailIsNotRegistered(model.Email)) return new RegisterAndAssociateOrderResult { Error = "The provided email already has an account associated" }; User registeredUser = await _registrationService.RegisterUser(model); order.User = registeredUser; _session.Transact(session => session.Update(order)); return new RegisterAndAssociateOrderResult(); }
public async Task<User> RegisterUser(RegisterModel model) { var guid = CurrentRequestData.UserGuid; var user = new User { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, IsActive = true }; _passwordManagementService.SetPassword(user, model.Password, model.ConfirmPassword); _userService.AddUser(user); await _authorisationService.SetAuthCookie(user, false); CurrentRequestData.CurrentUser = user; EventContext.Instance.Publish<IOnUserRegistered, OnUserRegisteredEventArgs>(new OnUserRegisteredEventArgs(user, guid)); return user; }