Exemplo n.º 1
0
        public HttpResponseMessage Create(ResetCreateRequest req)
        {
            if (req == null)
            {
                ModelState.AddModelError("", "You did not add any body data");
            }
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
            Guid token = passwordResetService.Create(req);
            ItemResponse <Guid> itemResponse = new ItemResponse <Guid>();

            itemResponse.Item = token;

            return(Request.CreateResponse(HttpStatusCode.OK, itemResponse));
        }
        public Guid Create(ResetCreateRequest req)
        {
            Guid   newToken = default(Guid);
            string userName = "";
            int    userId   = 0;

            dataProvider.ExecuteNonQuery(
                "PasswordReset_Create", inputParamMapper: (parameters) =>
            {
                parameters.AddWithValue("@Email", req.Email);
                parameters.Add("@Token", SqlDbType.UniqueIdentifier).Direction = ParameterDirection.Output;
                parameters.Add("@UserName", SqlDbType.NVarChar, 100).Direction = ParameterDirection.Output;
                parameters.Add("@UserId", SqlDbType.Int).Direction             = ParameterDirection.Output;
            }, returnParameters: (parameters) =>
            {
                userName = (string)parameters["@UserName"].Value;
                newToken = (Guid)parameters["@Token"].Value;
                userId   = (int)parameters["@UserId"].Value;
            });

            string openUrl = "password-reset?token=" + HttpUtility.UrlEncode(newToken.ToString());

            StringBuilder email = new StringBuilder();

            email.Append("Hi " + userName + ",");
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append("We've received a request to reset your RecruitHub password.");
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append("To reset your password please click on this link or cut and paste this URL into your browser:");
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append(openUrl);
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append("If you did not request a password reset, please ignore this email. Link will expire in 24 hours.");
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append("Thank you,");
            email.Append(Environment.NewLine + Environment.NewLine);
            email.Append("RecruitHub Team");
            string emailBody = email.ToString();

            emailSenderService.Send("RecruitHub", "*****@*****.**", userName, req.Email, "Password Reset", emailBody, null);

            return(newToken);
        }