protected void Page_Load(object sender, EventArgs e)
 {
     if (Request.QueryString["code"] != null && Request.QueryString["email"] != null)
     {
         UserBLL        userBll        = new UserBLL();
         UserActivation userActivation = new UserActivation();
         userActivation.Email          = Request.QueryString["email"];
         userActivation.ActivationCode = Request.QueryString["code"];
         bool status = userBll.activateUser(userActivation);
         if (status)
         {
             string script = "window.onload = function(){ alert('";
             script += "Your account is active now. Enjoy shopping ";
             script += "')};";
             ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
             //Response.Redirect("/Trinkets/frmHome.aspx");
         }
         else
         {
             string script = "window.onload = function(){ alert('";
             script += "Invalid link";
             script += "')};";
             ClientScript.RegisterStartupScript(this.GetType(), "Failed", script, true);
         }
     }
     else
     {
         string script = "window.onload = function(){ alert('";
         script += "Invalid link";
         script += "')};";
         ClientScript.RegisterStartupScript(this.GetType(), "Failed", script, true);
     }
 }
        public async Task <IActionResult> ActivateAsync([FromBody] UserActivation userActivation)
        {
            var actionResponseBuilder = GetEmptyResponseBuilder <string>();

            try
            {
                if (ModelState.IsValid)
                {
                    var operationFlag = await _sessionService.ActivateAsync(userActivation);

                    actionResponseBuilder.SetData(userActivation.Username);
                    actionResponseBuilder.SetStatus(operationFlag);

                    return(Ok(actionResponseBuilder.Build()));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                actionResponseBuilder.AddError(new Common.Utilities.ErrorMessage(Common.Enums.ErrorType.Invalid, ex.Message));
                return(BadRequest(actionResponseBuilder.Build()));
            }
        }
Exemple #3
0
        public void Handle(RegisteredUserEvent @event)
        {
            using (var db = new DisciturContext())
            {
                // Add new User to Read-Model
                User discuser = new User
                {
                    Name     = @event.Name,
                    Surname  = @event.Surname,
                    Email    = @event.Email,
                    UserName = @event.UserName,
                    Picture  = Constants.USER_DEFAULT_PICTURE
                };
                db.Users.Add(discuser);

                // Add new User-Activation Key to Read-Model
                UserActivation userActivation = new UserActivation
                {
                    UserName = @event.UserName,
                    Key      = @event.Id.ToString()
                };
                db.UserActivations.Add(userActivation);
                db.SaveChanges();
                _identityMapper.Map <User>(discuser.UserId, @event.Id);
            }
        }
Exemple #4
0
    public bool activateUser(UserActivation userActivation)
    {
        UserActivationAccess userActivationAccess = new UserActivationAccess();
        bool status = userActivationAccess.setActivated(userActivation);

        return(status);
    }
Exemple #5
0
    public bool setActivated(UserActivation userActivation)
    {
        bool status = false;

        try
        {
            DBConnection.conn.Open();
            string     query = "UPDATE dbo.tblUserActivation SET isActivated=1 WHERE Email=@Email AND ActivationCode=@ActivationCode";
            SqlCommand cmd   = new SqlCommand(query, DBConnection.conn);
            cmd.Parameters.AddWithValue("@Email", userActivation.Email);
            cmd.Parameters.AddWithValue("@ActivationCode", userActivation.ActivationCode);
            int result = cmd.ExecuteNonQuery();
            if (result > 0)
            {
                status = true;
                Email.sendActivatedMessage(userActivation.Email);
            }
        }
        catch (SqlException e)
        {
            ExceptionUtility.LogException(e, "Error Page");
        }
        finally
        {
            if (DBConnection.conn != null)
            {
                DBConnection.conn.Close();
            }
        }
        return(status);
    }
Exemple #6
0
        private void SendActivationEmail(string userId)
        {
            var    db               = new VidlyDbFirstEntities1();
            var    AppDb            = new ApplicationDbContext();
            var    user             = AppDb.Users.SingleOrDefault(c => c.Id == userId);
            string activationCode   = Guid.NewGuid().ToString();
            var    userActivationDb = new UserActivation {
                UserId = userId, ActivationCode = activationCode
            };

            db.UserActivations.Add(userActivationDb);
            db.SaveChanges();
            using (MailMessage mm = new MailMessage("*****@*****.**", user.Email))
            {
                mm.Subject = "Account Activation";
                string body = "Hello " + user.UserName + ",";
                body         += "<br /><br />Please click the following link to activate your account";
                body         += "<br /><a href = '" + "http://*****:*****@gmail.com", "babyng@me");
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = NetworkCred;
                smtp.Port = 587;
                smtp.Send(mm);
            }
        }
Exemple #7
0
 public IActionResult ForgotPassword([FromBody] UserActivation userParam)
 {
     try
     {
         EFDataContext _dbContext = new EFDataContext();
         User          dbUser     = _dbContext.Users
                                    .Where(u => u.EmailId == userParam.Email.ToLower()).FirstOrDefault();
         if (dbUser == null)
         {
             return(Ok());
         }
         dbUser.PasswordResetKey    = CryptoUtils.GenerateRandomString(20);
         dbUser.PasswordResetExpiry = DateTime.UtcNow.AddHours(24);
         _dbContext.SaveChanges();
         string resetLink = _appSettings.WebUrl + "auth/reset?email=" + dbUser.EmailId + "&key=" + dbUser.PasswordResetKey;
         Mail   newMail   = new Mail
         {
             Subject  = "AgroXchange Reset Password Request",
             BodyHtml = string.Format("Dear {0},<p>Upon your request, we have generated a password reset key for you to set a new password for your account. Please follow the link below either by clicking it or copy-pasting it in a browser window.</p><p>If you did not request for this, don't do anything, the reset key will expire in 24 hours.</p><p><a href=\"{1}\">{1}</a></p><p>Regards</p><p>AgroXchange</p>", dbUser.FirstName + " " + dbUser.LastName, resetLink)
         };
         newMail.AddToRecipient(dbUser.FirstName + " " + dbUser.LastName, dbUser.EmailId);
         _mailService.SendMail(newMail);
         return(Ok());
     }
     catch (Exception ex)
     {
         if (ex is ApiException)
         {
             return(BadRequest(new { message = ex.Message }));
         }
         return(BadRequest(new { message = "Error during forgot password request. Please try again." }));
     }
 }
Exemple #8
0
        public void ForgotPassword(string email)
        {
            ValidationResult validationResult;

            if (!this.IsValid(new ForgetPasswordViewModel {
                Email = email
            }, out validationResult))
            {
                var error = this.GenerateValidationError(validationResult);
                this.LogError("User.ForgotPassword", error);
                throw new FaultException <Error>(error, error.errorMessage);
            }

            User user = this.UserModel.GetOneByEmail(email).Value;

            UserActivationModel model = this.UserActivationModel;
            UserActivation      userActivation;

            if ((userActivation = model.GetLatestByUser(user.Id).Value) == null)
            {
                userActivation = UserActivation.Build(user);
                model.RegisterSave(userActivation);
            }

            user.Status = UserStatus.Active;
            this.UserModel.RegisterSave(user);
            this.SendActivationLinkEmail(user.FirstName, user.Email, userActivation.ActivationCode);
        }
        public void SendResetLinkToEmail(UserViewModel user)
        {
            // Create activation link for User
            var userActivation = new UserActivation()
            {
                UserId         = user.ID,
                ActivationCode = Guid.NewGuid(),
                ActivationType = (int)ActivationLinkType.ResetPassword    // Forgotten password
            };

            _userActivationRepository.Create(userActivation);

            //Send in Email message
            string htmlString = $@"<html>
                      <body>
                      <p>Dear { user.UserName },</p>
                      <p>You've forgotten your password </p>
                      </body>
                      </html>";

            var emailInfo = new Email()
            {
                Subject = "Forgotten Password",
                Message = htmlString,
                UserId  = user.ID,
                ToMail  = user.EmailAdress
            };

            _mailService.SendEmailActivation(emailInfo, userActivation);
        }
        public async Task ActivateUser(Guid productId, Guid activationCode)
        {
            UserActivation operation = new UserActivation(_authorityContext, productId, activationCode);
            await operation.Do();

            await operation.CommitAsync();
        }
Exemple #11
0
        public ActionResult UserActivation(UserActivation ua)
        {
            int userId = ua.ID;

            //  SendActivationEmail(userId);
            return(View());
        }
Exemple #12
0
        public async Task <EmailMessage> ResetPassword(UserSimpleDto user, UserActivation activation)
        {
            var email = new EmailMessage();

            email.FromAddresses.Add(new EmailAddress
            {
                Name    = SENDER_NAME,
                Address = _emailConfiguration.NoReplyEmail
            });

            email.ToAddresses.Add(new EmailAddress
            {
                Name    = user.Email,
                Address = user.Email
            });

            var resetPasswordHyperlink = $"<a href='{_configuration["ApiUrl:Url"]}/userActivations/userPasswordReset?token={activation.Token}'>Reset hesla</a>";

            email.Subject = $"Reset hesla uživatele { user.UserName }";
            email.Content = $@"<p>Bylo zažádáno o obnovení hesla pro uživatele <strong>{ user.UserName }</strong>. Pokud jste o změnu nežádali, dejte nám prosím vědět a žádný úkon neprovádějte.</p>
<p>Pro obnovení hesla přejděte na stránky prostřednictvím odkazu { resetPasswordHyperlink }</p>
<p>Váš tým <strong>Jera Trading s.r.o.</strong></p>";

            await _emailService.Send(email);

            return(email);
        }
        public async Task <bool> ActivateAsync(UserActivation userActivation)
        {
            var user = await _userService.GetAsync(userActivation.Username, userActivation.Password);

            user.IsActive = userActivation.Activate;

            return(await _userService.UpdateAsync(user));
        }
Exemple #14
0
        /// <summary>
        /// Updates a new UserActivation
        /// </summary>
        /// class that represents the information of <see cref="SubmitResponse">.</returns>
        public async Task <SubmitResponse> UpdateUserActivation(UserActivation userActivation)
        {
            var result = await sqlDataProvider.ExecuteScalarAsync <int>("dbo.[UpdateUserActivation]", true,
                                                                        new System.Data.SqlClient.SqlParameter("@Id", userActivation.Id),
                                                                        new System.Data.SqlClient.SqlParameter("@Expires", userActivation.Expires));

            return(result == 0 ? SubmitResponse.Ok() : SubmitResponse.Error());
        }
Exemple #15
0
        public async Task <IActionResult> Register([FromBody] RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName   = model.UserName,
                    Email      = model.Email,
                    Mobile     = model.Mobile,
                    FirstName  = model.FirstName,
                    MiddleName = model.MiddleName,
                    LastName   = model.LastName
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);

                    var userActivation = new UserActivation
                    {
                        Id           = Guid.NewGuid().ToString(),
                        Created      = DateTime.Now,
                        Expires      = DateTime.Now.AddMinutes(ActivationExpiryInMinutes),
                        IdentityCode = code,
                        UserId       = user.Id,
                        ShortCode    = Health.Configuration.Extensions.GetRandomNumber()
                    };

                    await _doctorManager.AddUserActivation(userActivation);

                    //Send SMS with the short code
                    _smsSender.Send(model.Mobile, "Activation code: " + userActivation.ShortCode);

                    try
                    {
                        if (!string.IsNullOrWhiteSpace(model.Email))
                        {
                            await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);
                        }
                    }
                    catch // Ignored
                    {
                    }

                    _logger.LogInformation("User created a new account with password.");
                    return(Ok(new { Success = true }));
                }
                AddErrors(result);
            }

            return(BadRequest(new { Success = false, Msg = "Invalid model" }));
        }
Exemple #16
0
        private void SendActivationEmail(int userId)
        {
            string activationCode = Guid.NewGuid().ToString();

            using (AccountDbContext db = new AccountDbContext())
            {
                // Here first check if the activation code is already present (sent first time to the user) the retrive the same activation code from th table and send email again.
                UserActivation ua = new UserActivation();

                //     ua = db.userActivation.FirstOrDefault(userAct => userAct.ID == userId);

                var checkUser = (from row in db.userActivation
                                 where row.ID == userId
                                 select row).ToList();

                if (checkUser.Count() == 0)
                {
                    // Here add activation code and UserId in activation table
                    ua.ID              = userId;
                    ua.ActivationCode  = activationCode;
                    db.Entry(ua).State = EntityState.Added;
                    db.SaveChanges();
                }
                else
                {
                    activationCode = checkUser[0].ActivationCode;
                }
            }

            AccountDbContext dbContext = new AccountDbContext();
            UserAccount      user      = dbContext.userAccounts.FirstOrDefault(u => u.UserId == userId);
            string           toEmailID = user.Email;
            string           userName  = user.FirstName;
            MailMessage      mm        = new MailMessage("*****@*****.**", toEmailID);

            mm.Subject = "Account Activation";
            string body = "Hello " + userName;

            body += "<br /><br />Please click the following link to activate your account";
            body += "<br /><a href = '" + Request.Url.AbsoluteUri + "?ActivationCode=" + activationCode + "'>Click here to activate your account.</a>";


            body         += "<br /><br />Thanks";
            mm.Body       = body;
            mm.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient();

            smtp.Host      = "smtp.gmail.com";
            smtp.EnableSsl = true;
            NetworkCredential NetworkCred = new NetworkCredential("*****@*****.**", "");

            smtp.UseDefaultCredentials = false;
            smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
            smtp.Credentials           = NetworkCred;
            smtp.Port = 25;
            smtp.Send(mm);
        }
Exemple #17
0
        /// <summary>
        /// Creates a new UserActivation
        /// </summary>
        /// class that represents the information of <see cref="SubmitResponse">.</returns>
        public async Task <SubmitResponse> AddUserActivation(UserActivation userActivation)
        {
            var result = await sqlDataProvider.ExecuteScalarAsync <int>("dbo.[AddUserActivation]", true,
                                                                        new System.Data.SqlClient.SqlParameter("@Id", userActivation.Id),
                                                                        new System.Data.SqlClient.SqlParameter("@ShortCode", userActivation.ShortCode),
                                                                        new System.Data.SqlClient.SqlParameter("@IdentityCode", userActivation.IdentityCode),
                                                                        new System.Data.SqlClient.SqlParameter("@Created", userActivation.Created),
                                                                        new System.Data.SqlClient.SqlParameter("@Expires", userActivation.Expires),
                                                                        new System.Data.SqlClient.SqlParameter("@UserId", userActivation.UserId));

            return(result == 0 ? SubmitResponse.Ok() : SubmitResponse.Error());
        }
Exemple #18
0
 public void Handle(ActivatedUserEvent @event)
 {
     using (var db = new DisciturContext())
     {
         UserActivation activation = db.UserActivations.Where(a => a.UserName.Equals(@event.UserName) && a.Key.Equals(@event.Id.ToString())).First();
         if (activation != null)
         {
             db.UserActivations.Remove(activation);
             db.SaveChanges();
         }
     }
 }
        public IHttpActionResult DeleteToken(string userToken)
        {
            Guid activationCode = new Guid(userToken.ToString());

            UserActivation userActivation = objEntity.UserActivations.Where(p => p.ActivationCode == activationCode).FirstOrDefault();

            if (userActivation != null)
            {
                objEntity.UserActivations.Remove(userActivation);
                objEntity.SaveChanges();
            }
            return(Ok());
        }
Exemple #20
0
        public ActivationResponse ActivateUser(ActivationRequest req)
        {
            req.ActivationCode = Cryptography.Decrypt(req.ActivationCode);
            UserActivation UserAction = _context.UserActivations.Include(x => x.User)
                                        .Where(p => p.ActivationCode == req.ActivationCode && p.ActivationType == ActivationType.UserActivation)
                                        .Select(s => s).FirstOrDefault();

            UserAction.User.Active           = true;
            UserAction.isActivated           = true;
            UserAction.ActivationChannelType = ActivationChannelType.Email;
            _context.SaveChangesAsync();
            return(UserAction.Adapt <ActivationResponse>());
        }
Exemple #21
0
        /// <summary>
        /// The activate.
        /// </summary>
        /// <param name="activationCode">
        /// The activation code.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public string Activate(string activationCode)
        {
            var arr = UserActivationModel.GetOneByCode(activationCode).Value;

            if (arr == null)
            {
                var error = new Error(
                    Errors.CODE_ERRORTYPE_USER_INACTIVE,
                    ErrorsTexts.UserActivationError_Subject,
                    ErrorsTexts.UserActivationError_InvalidActivationCode);
                this.LogError("Rest.Activate", error);
                throw new FaultException <Error>(error, error.errorMessage);
            }

            if (arr.DateExpires < DateTime.Now)
            {
                var error = new Error(
                    Errors.CODE_ERRORTYPE_USER_INACTIVE,
                    ErrorsTexts.UserActivationError_Subject,
                    ErrorsTexts.UserActivationError_InvalidActivationCode);
                this.LogError("Rest.Activate", error);
                throw new FaultException <Error>(error, error.errorMessage);
            }

            var user = arr.User;

            user.Status       = UserStatus.Active;
            user.DateModified = DateTime.Now;
            UserActivationModel model = this.UserActivationModel;
            UserActivation      userActivation;

            if ((userActivation = model.GetLatestByUser(user.Id).Value) == null)
            {
                userActivation = UserActivation.Build(user);
                model.RegisterSave(userActivation);
            }

            UserModel.RegisterSave(user);
            //IoC.Resolve<RealTimeNotificationModel>()
            //    .NotifyClientsAboutChangesInTable<User>(NotificationType.Update, user.Company.Id, user.Id);
            UserActivationModel.RegisterDelete(arr);
            this.SendActivationLinkEmail(user.FirstName, user.Email, userActivation.ActivationCode);
            if (WebOperationContext.Current != null)
            {
                var response = WebOperationContext.Current.OutgoingResponse;
                response.StatusCode = HttpStatusCode.Redirect;
                response.Headers.Add(HttpResponseHeader.Location, (string)this.Settings.BasePath);
            }

            return(null);
        }
Exemple #22
0
        protected void SendActivation(User user)
        {
            UserActivationModel model = this.UserActivationModel;
            UserActivation      userActivation;
            List <MailAddress>  bcced = null;

            if ((userActivation = model.GetLatestByUser(user.Id).Value) == null)
            {
                userActivation = UserActivation.Build(user);
                model.RegisterSave(userActivation);
                bcced = GetBCCed(this.Settings.BCCNewEmail as string);
            }

            SendActivationEmail(user.FirstName, user.Email, user.Company, userActivation.ActivationCode, bcced);
        }
Exemple #23
0
        /// <summary>
        /// Активировать или деактивировать пользователя
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> ActivateOrDeActivateUserAsync(UserActivation model)
        {
            var userDto = await UserSearcher.GetUserByIdAsync(model.Id);

            if (userDto == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору"));
            }

            var result = UserRightsExtensions.HasRightToEditUser(userDto, User, RolesSetting);

            if (!result.IsSucceeded)
            {
                return(result);
            }

            var userRepo = GetRepository <Client>();

            var user = await userRepo.Query().FirstOrDefaultAsync(x => x.Id == model.Id);

            if (user == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору"));
            }

            if (model.DeActivated)
            {
                if (user.DeActivated)
                {
                    return(new BaseApiResponse(false, "Пользователь уже является деактивированным"));
                }

                user.DeActivated = true;
                userRepo.UpdateHandled(user);

                return(await TrySaveChangesAndReturnResultAsync("Пользователь деактивирован"));
            }

            if (!user.DeActivated)
            {
                return(new BaseApiResponse(false, "Пользователь уже активирован"));
            }

            user.DeActivated = false;
            userRepo.UpdateHandled(user);

            return(await TrySaveChangesAndReturnResultAsync("Пользователь активирован"));
        }
Exemple #24
0
        private void SetupActivation(Register user)
        {
            UserActivation usersActivation = new UserActivation();

            usersActivation.User           = user;
            usersActivation.StartTime      = DateTime.Now;
            usersActivation.ActivationCode = GenerateActivationCode();
            usersActivation.ActivationType = ActivationType.UserActivation;
            _mailService.SetActivation(usersActivation.Adapt <Activation>());
            _mailService.SetEmailType(EmailType.UserActivation);
            _mailService.SetMailBoxes = ConvertUserToMailBoxesArray(user);
            _mailService.SetEmailMessage();
            _mailService.SendEmailAsync();
            _context.UserActivations.Add(usersActivation);
            _context.SaveChangesAsync();
        }
Exemple #25
0
        public void Handle(UserMementoPropagatedEvent @event)
        {
            using (var db = new DisciturContext())
            {
                int itemId = _identityMapper.GetModelId <User>(@event.Memento.Id);
                if (itemId.Equals(0))
                {
                    // User not exists
                    // Add new User to Read-Model
                    string _picture = Constants.USER_DEFAULT_PICTURE;
                    string _thumb   = null;
                    if (@event.Memento.Picture != null)
                    {
                        char[] bytes = new char[@event.Memento.Picture.Length * sizeof(byte)];
                        System.Buffer.BlockCopy(@event.Memento.Picture, 0, bytes, 0, bytes.Length);
                        var _str = new string(bytes);
                        _picture = _thumb = _str;
                    }

                    User discuser = new User
                    {
                        Name     = @event.Memento.Name,
                        Surname  = @event.Memento.Surname,
                        Email    = @event.Memento.Email,
                        UserName = @event.Memento.UserName,
                        Picture  = _picture,
                        Thumb    = _thumb
                    };
                    db.Users.Add(discuser);

                    if ([email protected])
                    {
                        // Add new User-Activation Key to Read-Model
                        UserActivation userActivation = new UserActivation
                        {
                            UserName = @event.Memento.UserName,
                            Key      = @event.Memento.Id.ToString()
                        };
                        db.UserActivations.Add(userActivation);
                    }
                    db.SaveChanges();
                    _identityMapper.Map <User>(discuser.UserId, @event.Memento.Id);
                }
                // otherwise it could be used for maintenance purposes
            }
        }
Exemple #26
0
 public IActionResult Activate([FromBody] UserActivation userParam)
 {
     try
     {
         EFDataContext _dbContext = new EFDataContext();
         User          dbUser     = _dbContext.Users
                                    .Where(u => u.EmailId == userParam.Email.ToLower() &&
                                           u.ActivationKey == userParam.Key &&
                                           !u.Activated).FirstOrDefault();
         if (dbUser == null)
         {
             throw new ApiException("The email id given either does not exist or the key provided is invalid, or this user has already been activated");
         }
         if (!dbUser.ActivationMailDate.HasValue || dbUser.ActivationMailDate.Value.AddHours(24).CompareTo(DateTime.UtcNow) < 0)
         {
             dbUser.ActivationKey      = CryptoUtils.GenerateRandomString(20);
             dbUser.ActivationMailDate = DateTime.UtcNow;
             _dbContext.SaveChanges();
             string activationLink = _appSettings.WebUrl + "auth/activate?email=" + dbUser.EmailId + "&key=" + dbUser.ActivationKey;
             Mail   newMail        = new Mail
             {
                 Subject  = "AgroXchange Account Activation",
                 BodyHtml = string.Format("Dear {0},<p>We have generated a new activation key for you. Please verify your email address by clicking the link below or copy-pasting it in a browser window.</p><p><a href=\"{1}\">{1}</a></p><p>Regards</p><p>AgroXchange</p>", dbUser.FirstName + " " + dbUser.LastName, activationLink)
             };
             newMail.AddToRecipient(dbUser.FirstName + " " + dbUser.LastName, dbUser.EmailId);
             _mailService.SendMail(newMail);
             throw new ApiException("It's been more than 24 hours. Your activation key has expired. We have emailed you a new one. Please follow the link in the new email to activate your account.");
         }
         else
         {
             dbUser.Activated     = true;
             dbUser.ActivationKey = "";
             _dbContext.SaveChanges();
         }
         return(Ok());
     }
     catch (Exception ex)
     {
         if (ex is ApiException)
         {
             return(BadRequest(new { message = ex.Message }));
         }
         return(BadRequest(new { message = "Error while activating user. Please try again." }));
     }
 }
        public void ReSendLoginCredentials(int userId)
        {
            var user = _userRepository.FindById(userId);

            if (user.IsActive && !user.IsEmailVerified)
            {
                // Generate New Password
                var pass = GenerateRandomPassword();
                user.Password            = _passwordHasher.Hash(pass);
                user.PasswordChangedDate = DateTime.Now;
                _userRepository.Update(user);

                // Create activation link for User
                var userActivation = new UserActivation()
                {
                    UserId         = user.ID,
                    ActivationCode = Guid.NewGuid(),
                    ActivationType = (int)ActivationLinkType.Register
                };
                _userActivationRepository.Create(userActivation);

                //Create New Email
                string htmlString = $@"<html>
                      <body>
                      <p>Dear { user.UserName },</p>
                      <p>Thank you for joining our Learning Academy Program! <br> 
                               Your credenitals for login are:<br> username: { user.UserName } <br> password: {pass} </p>
                      </body>
                      </html>";

                var emailInfo = new Email()
                {
                    Subject = "Login Credentials",
                    Message = htmlString,
                    UserId  = user.ID,
                    ToMail  = user.EmailAddress
                };

                // Save raw Email with user credentials in DB, so it can be also printed later
                _emailRepository.Create(emailInfo);

                // Now, send confrimation link on user's Email address
                _mailService.SendEmailActivation(emailInfo, userActivation);
            }
        }
Exemple #28
0
        public User Register(string email, string password, string name, Guid guid)
        {
            var userActivation = new UserActivation
            {
                User = new User()
                {
                    Email    = email,
                    Password = password,
                    Name     = name
                },
                Guid = guid.ToString()
            };

            _context.UserActivations.Add(userActivation);
            _context.SaveChanges();

            return(userActivation.User);
        }
 public static void Add(UserActivation user)
 {
     try
     {
         using (NHibernate.ISession session = SessionFactory.GetNewSession())
         {
             using (NHibernate.ITransaction transaction = session.BeginTransaction())
             {
                 session.Save(user);
                 transaction.Commit();
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
    public bool addUser(User user)
    {
        bool status = false;

        try
        {
            DBConnection.conn.Open();
            string salt         = PasswordGenerator.generateSalt();
            string hashPassword = PasswordGenerator.generateHash(user.Password + salt);
            string query        = "INSERT INTO dbo.tblUser (FirstName,LastName,Email,PhoneNumber,Password,Address,IsAdmin, Active, Salt) "
                                  + " VALUES (@FirstName,@LastName,@Email,@PhoneNumber,@Password,@Address,@IsAdmin, @Active, @Salt) ";
            SqlCommand cmd = new SqlCommand(query, DBConnection.conn);
            cmd.Parameters.AddWithValue("@FirstName", user.FirstName);
            cmd.Parameters.AddWithValue("@LastName", user.LastName);
            cmd.Parameters.AddWithValue("@Email", user.Email);
            cmd.Parameters.AddWithValue("@PhoneNumber", user.Phone);
            cmd.Parameters.AddWithValue("@Password", hashPassword);
            cmd.Parameters.AddWithValue("@Address", user.Address);
            cmd.Parameters.AddWithValue("@IsAdmin", user.IsAdmin?1:0);
            cmd.Parameters.AddWithValue("@Active", user.IsActive ? 1 : 0);
            cmd.Parameters.AddWithValue("@Salt", salt);
            int result = cmd.ExecuteNonQuery();
            if (result > 0)
            {
                UserActivation userActivation = new UserActivation();
                userActivation.Email = user.Email;
                UserActivationAccess userActivationAccess = new UserActivationAccess();
                status = userActivationAccess.addUserActivation(userActivation);
            }
        }
        catch (SqlException e)
        {
            ExceptionUtility.LogException(e, "Error Page");
        }
        finally
        {
            if (DBConnection.conn != null)
            {
                DBConnection.conn.Close();
            }
        }
        return(status);
    }