Exemplo n.º 1
0
        public async Task <RepositoryResponse <string> > ForgotPassword([FromBody] Mix.Identity.Models.AccountViewModels.ForgotPasswordViewModel model)
        {
            var result = new RepositoryResponse <string>()
            {
                IsSucceed = true
            };

            if (string.IsNullOrEmpty(model.Email))
            {
                result.IsSucceed = false;
                result.Data      = "Invalid Email";
                result.Errors.Add("Invalid Email");
                return(result);
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                result.IsSucceed = false;
                result.Data      = "Email Not Exist";
                result.Errors.Add("Email Not Exist");
                return(result);
            }

            //if (!await _userManager.IsEmailConfirmedAsync(user))
            //    result.Data = "Invalid Email";

            var confrimationCode =
                await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackurl    = $"{Request.Scheme}://{Request.Host}/security/reset-password/?token={System.Web.HttpUtility.UrlEncode(confrimationCode)}";
            var getEdmTemplate = await Lib.ViewModels.MixTemplates.ReadViewModel.Repository.GetSingleModelAsync(
                m => m.FolderType == MixTemplateFolders.Edms && m.FileName == "ForgotPassword");

            string content = callbackurl;

            if (getEdmTemplate.IsSucceed)
            {
                content = getEdmTemplate.Data.Content.Replace("[URL]", callbackurl);
            }
            MixService.SendMail(
                to: user.Email,
                subject: "Reset Password",
                message: content);

            return(result);
        }
Exemplo n.º 2
0
 private static Task SendEdm(string culture, string template, JObject data)
 {
     return(Task.Run(() => {
         if (!string.IsNullOrEmpty(data["email"].Value <string>()))
         {
             var getEdm = MixTemplates.UpdateViewModel.GetTemplateByPath(template, culture);
             if (getEdm.IsSucceed && !string.IsNullOrEmpty(getEdm.Data.Content))
             {
                 string body = getEdm.Data.Content;
                 foreach (var prop in data.Properties())
                 {
                     body = body.Replace($"[[{prop.Name}]]", prop.Value <string>());
                 }
                 MixService.SendMail("Invitation", getEdm.Data.Content, data["email"].Value <string>());
             }
         }
     }));
 }
        public async Task <RepositoryResponse <string> > ForgotPassword([FromBody] Mix.Identity.Models.AccountViewModels.ForgotPasswordViewModel model)
        {
            var result = new RepositoryResponse <string>()
            {
                IsSucceed = true
            };

            if (string.IsNullOrEmpty(model.Email))
            {
                result.IsSucceed = false;
                result.Data      = "Invalid Email";
                result.Errors.Add("Invalid Email");
                return(result);
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                result.IsSucceed = false;
                result.Data      = "Email Not Exist";
                result.Errors.Add("Email Not Exist");
                return(result);
            }

            //if (!await _userManager.IsEmailConfirmedAsync(user))
            //    result.Data = "Invalid Email";

            var confrimationCode =
                await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackurl = $"{Request.Scheme}://{Request.Host}/security/reset-password/?token={System.Web.HttpUtility.UrlEncode(confrimationCode)}";

            MixService.SendMail(
                to: user.Email,
                subject: "Reset Password",
                message: callbackurl);

            return(result);
        }
Exemplo n.º 4
0
 public void SendMail([FromBody] JObject model)
 {
     MixService.SendMail(model.Value <string>("subject"), model.Value <string>("body"), MixService.GetConfig <string>("ContactEmail", _lang));
 }