fogot
fogot
Core;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Text;
using System.Web;
using TicketCore.Common;
using TicketCore.Data.EmailVerification.Command;
using TicketCore.Data.Usermaster.Queries;
using TicketCore.Models.Usermaster;
using TicketCore.Models.Verification;
using TicketCore.Services.MailHelper;
using TicketCore.ViewModels.LoginVM;
using TicketCore.ViewModels.Usermaster;
using TicketCore.Web.Helpers;
using System.Net;
using System.Net.Mail;
namespace TicketCore.Web.Controllers
{
public class ForgotPasswordController : Controller
{
private readonly IUserMasterQueries _userMasterQueries;
private readonly IMailingService _mailingService;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IVerificationCommand _verificationCommand;
private readonly ILogger<ForgotPasswordController> _logger;
public ForgotPasswordController(
IUserMasterQueries userMasterQueries,
IMailingService mailingService,
IWebHostEnvironment webHostEnvironment, IVerificationCommand
verificationCommand, ILogger<ForgotPasswordController> logger)
{
_userMasterQueries = userMasterQueries;
_mailingService = mailingService;
_webHostEnvironment = webHostEnvironment;
_verificationCommand = verificationCommand;
_logger = logger;
}
[HttpGet]
public IActionResult Recover()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
[ValidateDNTCaptcha(ErrorMessage = "Please enter valid security code",
CaptchaGeneratorLanguage = Language.English, CaptchaGeneratorDisplayMode =
DisplayMode.ShowDigits)]
try
{
var verifyuser =
_userMasterQueries.CheckEmailIdExists(forgotPasswordViewModel.EmailId);
SmtpClient client = new SmtpClient();
if (verifyuser)
{
var userdetails =
_userMasterQueries.GetUserdetailsbyEmailId(forgotPasswordViewModel.EmailId);
var token =
HashHelper.CreateHashSHA256((GenerateRandomNumbers.GenerateRandomDigitCode(6)));
var commonDatetime = DateTime.Now;
var sendingresult = CreateVerificationEmail(userdetails,
token);
// Creare mesaj
MailMessage message = new MailMessage(fromEmail, toEmail);
message.Subject = "Test Email";
// message.Body = "Acesta este un test de email.";
var emailBody = CreateVerificationEmail(userdetails,
token);
message.Body = emailBody;
client.UseDefaultCredentials = false;
client.Port = 587;
client.Host = "smtp.gmail.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new
NetworkCredential("[email protected]", "Parola!@#");
client.EnableSsl = true;
// Trimitere email
client.Send(message);
TempData["ForgotPasswordMessage"] = "Un email a fost trimis
la adresa respectiva!";
}
catch (Exception ex)
{
_logger.LogError(ex, "ForgotPasswordController:Recover");
}
return RedirectToAction("Recover", "ForgotPassword");
}
return View();
}
return stringtemplate.ToString();
}
}
}