Beispiel #1
0
        public IHttpActionResult InsertGUID(ForgotPasswordAppTokenAddRequest model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                ItemResponse <string> response = new ItemResponse <string>
                {
                    Item = _appTokenService.InsertGUID(model)
                };

                if (response.Item != null)
                {
                    Email eml = new Email();

                    MessageAddress msgAdd = new MessageAddress
                    {
                        Email = model.Email
                                //,Name = model.Email
                    };

                    List <MessageAddress> list = new List <MessageAddress>
                    {
                        msgAdd
                    };

                    eml.To          = list;
                    eml.FromAddress = "*****@*****.**";
                    eml.FromName    = "Eleveight";
                    eml.Subject     = "Reset your password";
                    eml.HtmlBody    = _emailTemplateService.CreateForgotPassword(new EmailTemplateInput
                    {
                        Name  = msgAdd.Name,
                        Token = response.Item
                    });

                    _emailMessenger.SendMail(eml);
                }

                return(Ok(response));
            }
            catch (Exception ex)
            {
                int currentUser = _userService.GetCurrentUserId();
                _appLogService.Insert(new AppLogAddRequest
                {
                    AppLogTypeId = 1,
                    Message      = ex.Message,
                    StackTrace   = ex.StackTrace,
                    Title        = "Error in " + GetType().Name + " " + System.Reflection.MethodBase.GetCurrentMethod().Name,
                    UserBaseId   = currentUser
                });

                return(BadRequest(ex.Message));
            }
        }
Beispiel #2
0
        public string InsertGUID(ForgotPasswordAppTokenAddRequest model)
        {
            string returnValue = "";

            DataProvider.ExecuteNonQuery("dbo.AppToken_InsertByUserBaseEmail",
                                         inputParamMapper: (SqlParameterCollection inputs) =>
            {
                inputs.AddWithValue("@Email", model.Email);
                SqlParameter guidIdOut = new SqlParameter("@GUID", SqlDbType.NVarChar, 128);
                guidIdOut.Direction    = ParameterDirection.Output;
                inputs.Add(guidIdOut);
            },
                                         returnParameters: (SqlParameterCollection inputs) =>
            {
                returnValue = inputs["@GUID"].Value.ToString();
            }
                                         );
            return(returnValue);
        }
Beispiel #3
0
        public Boolean ChangePassword(ChangePasswordUserBaseUpdateRequest model)
        {
            Boolean  isPasswordChanged;
            UserBase user = new UserBase();

            DataProvider.ExecuteCmd("dbo.UserBase_SelectById",
                                    inputParamMapper: (SqlParameterCollection inputs) =>
            {
                inputs.AddWithValue("@id", model.CurrentUserBaseId);
            },
                                    singleRecordMapper: (IDataReader reader, short resultSet) =>
            {
                if (resultSet == 0)
                {
                    user = DataMapper <UserBase> .Instance.MapToObject(reader);
                }
            });

            string oldPasswordHash = _cryptographyService.Hash(model.OldPassword, user.Salt, HASH_ITERATION_COUNT);

            if (user.PasswordHash == oldPasswordHash)
            {
                //use user id to get guid
                ForgotPasswordAppTokenAddRequest addRequest = new ForgotPasswordAppTokenAddRequest();
                addRequest.Email = user.Email;
                string currentUserGUID = InsertGUID(addRequest);

                //use guid to update password
                ForgotPasswordUserBaseUpdateRequest updateRequest = new ForgotPasswordUserBaseUpdateRequest();
                updateRequest.Password = model.NewPassword;
                updateRequest.GUID     = currentUserGUID;
                UpdatePassword(updateRequest);
                isPasswordChanged = true;
            }
            else
            {
                isPasswordChanged = false;
            }
            return(isPasswordChanged);
        }