コード例 #1
0
        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);
        }
コード例 #2
0
        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;

        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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 };
        }
コード例 #6
0
 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);
 }
コード例 #7
0
 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;
     }
 }
コード例 #8
0
 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();
     }
 }