コード例 #1
0
        public async Task <HttpResponseMessage> UserForgetPassword(ForgetPasswordRequest reqForgetPasswordRequest)
        {
            FResponse result = new FResponse();

            try
            {
                Int64 UserId = _objFriendFitDBEntity.Database.SqlQuery <Int64>("select Id from UserProfile where Email={0}", reqForgetPasswordRequest.Email).FirstOrDefault();

                if (UserId != 0)
                {
                    _objIUserSettings.UpdateToken(UserId);
                    string token = _objFriendFitDBEntity.Database.SqlQuery <string>("select TokenCode from UserToken where UserId={0}", UserId).FirstOrDefault();

                    string Email = _objFriendFitDBEntity.Database.SqlQuery <string>("Select Email from UserProfile Where Id=" + UserId).FirstOrDefault();


                    var SendingMessage = new MailMessage();
                    SendingMessage.To.Add(new MailAddress(Email));                   // replace with valid value
                    SendingMessage.From       = new MailAddress("*****@*****.**"); // replace with valid value
                    SendingMessage.Subject    = "Password Reset (noti.fit)";
                    SendingMessage.Body       = "Hi,<br/>You've requested a reset of your noti.fit password. If you didn't make the request, please ignore this email and your password won't be reset.<br/><br/> You can reset your password by visiting <br/> <br/><a href='" + ChangePasswordUrl + token + "'>" + ChangePasswordUrl + token + "</a> <br/><br/>This email will be valid for the next 12 hours.,<br/><br/><br/><br/>Kind regards<br/>The noti.fit team";
                    SendingMessage.IsBodyHtml = true;

                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "******",  // replace with valid value
                            Password = "******" // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host        = "smtp.gmail.com";
                        smtp.Port        = 587;
                        smtp.EnableSsl   = true;
                        await smtp.SendMailAsync(SendingMessage);
                    }
                    //track sent Email time for expiry time :

                    EmailTimeSaveModel objreq = new EmailTimeSaveModel();
                    objreq.UserId       = UserId;
                    objreq.ResetMail    = true;
                    objreq.VerifyMail   = false;
                    objreq.MailSentTime = DateTime.Now.TimeOfDay;
                    EmailTrackerWrapper wrapper = new EmailTrackerWrapper();
                    wrapper.EmailTimeSave(objreq);

                    result.StatusCode = Convert.ToInt32(HttpStatusCode.OK);
                    result.Message    = "Please check your Email for further instructions";
                }
                else
                {
                    FileStream   fs  = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/Content/ErrorLog.txt"), FileMode.Append, FileAccess.Write);
                    StreamWriter swr = new StreamWriter(fs);
                    swr.Write("Enter ur Exception Here");
                    swr.Close();
                    result.StatusCode = Convert.ToInt32(HttpStatusCode.Unauthorized);
                    result.Message    = "This Mail Id is not registered";
                }
                var message = Request.CreateResponse(HttpStatusCode.Created, result);
                return(message);
            }
            catch (Exception ex)
            {
                result.StatusCode = Convert.ToInt32(HttpStatusCode.BadRequest);
                _response         = Request.CreateResponse(HttpStatusCode.InternalServerError, "Some error occurred");
            }
            return(_response);
        }