public ActionResult Join(AccountSignupVM model) { try { if (ModelState.IsValid) { var accountExists = accountManager.DoesAccountExist(model.Email); if (!accountExists) { var newUser = new UserAccountDto { EmailAddress = model.Email, Name = model.Name, Password = model.Password }; var userSession = accountManager.CreateUserAccount(newUser); if (userSession.UserId > 0) { SetUserIDToSession(userSession); } if (!String.IsNullOrEmpty(model.ReturnUrl)) return RedirectToAction("joinmyteam", "users", new { id = model.ReturnUrl }); return RedirectToAction("accountcreated"); } else { ModelState.AddModelError("", "Account already exists with this email address"); } } } catch (Exception ex) { log.Error(ex); } return View(model); }
public int Save(UserAccountDto userAccount) { var userEntity = new User(); userEntity.FirstName = userAccount.Name; userEntity.EmailAddress = userAccount.EmailAddress; userEntity.Password = userAccount.Password; userEntity.Avatar = userAccount.GravatarUrl; userEntity.CreatedDate = DateTime.UtcNow; db.Users.Add(userEntity); db.SaveChanges(); return userEntity.ID; }
public void SendResetPasswordEmail(UserAccountDto userAccount,string activationLink) { var emailTemplate = repository.GetEmailTemplate("ResetPassword"); if (emailTemplate != null) { string emailSubject = emailTemplate.Subject; string emailBody = emailTemplate.EmailBody; Email email = new Email(); email.ToAddress.Add(userAccount.EmailAddress); string joinLink = $"{UrlBuilderHelper.SiteBaseUrl}Account/resetpassword/{activationLink}"; emailBody = emailBody.Replace("@resetLink", joinLink); email.Body = emailBody; email.Subject = emailSubject; email.Send(); } }
public LoggedInSessionInfo CreateUserAccount(UserAccountDto userAccount) { var userSession = new LoggedInSessionInfo { }; userAccount.GravatarUrl = UserService.GetGravatarHash(userAccount.EmailAddress); var userId = accountRepository.Save(userAccount); //Create a default team for the user var team = new TeamDto { Name = userAccount.Name.Replace(" ", "-"), CreatedById = userId }; if (team.Name.Length > 19) team.Name = team.Name.Substring(0, 19); var teamId = teamRepository.SaveTeam(team); teamRepository.SaveTeamMember(teamId, userId, userId); teamRepository.SaveDefaultTeamForUser(userId,teamId); userSession.TeamId = teamId; userSession.UserId = userId; userSession.UserDisplayName = userAccount.Name; return userSession; }
public async Task<LoggedInSessionInfo> CreateAccount(UserAccountDto userAccount) { var userId = await userRepository.CreateAccount(userAccount); var teamName = userAccount.Name.Replace(" ", "") + " Team"; var teamId = await Task.FromResult(teamRepository.SaveTeam(new TeamDto { CreatedById = userId, Name = teamName })); await this.userRepository.SetDefaultTeam(userId, teamId); await this.emailManager.SendAccountCreatedEmail(new UserDto { Name = userAccount.Name, EmailAddress = userAccount.EmailAddress }); return new LoggedInSessionInfo() { TeamId = teamId, UserId = userId, UserDisplayName = userAccount.Name }; }
public async Task SavePasswordResetRequest(UserAccountDto user) { var passwordResetRequest = new PasswordResetRequest { UserId = user.Id, ActivationCode = string.Format("{0}{1}{2}", Guid.NewGuid().ToString().Split('-').First(), user.Id, Guid.NewGuid().ToString().Split('-').First()) }; await this.userRepository.SavePasswordResetRequest(passwordResetRequest); passwordResetRequest.User = user; //Email await SendEmailNotificaionForResetPassword(passwordResetRequest); }
public void SavePasswordResetRequest(UserAccountDto userAccount, string activationLink) { try { var request = new PasswordResetRequest { ActivationCode = activationLink, UserID = userAccount.Id }; request.CreatedDate = DateTime.UtcNow; db.PasswordResetRequests.Add(request); db.SaveChanges(); } catch (Exception) { throw; } }
public void UpdateProfile(UserAccountDto userAccountDto) { var user = db.Users.FirstOrDefault(s => s.ID == userAccountDto.Id); if (user != null) { user.FirstName = userAccountDto.Name; user.EmailAddress = userAccountDto.EmailAddress; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); } }