Exemplo n.º 1
0
        public IActionResult ChangePassByMail(ChangePasswordMailDTO model)
        {
            try
            {
                var content   = String.Empty;
                var result    = String.Empty;
                var tokenUsed = CheckTokenUsed(model.Token);
                if (tokenUsed != HttpStatusCode.OK)
                {
                    _logger.LogInformation("Token de cambio de contraseña a través del mail para el token {0} usado.", model.Token);
                    ViewBag.Motivo      = "Token Usado";
                    ViewBag.Content     = "No es posible realizar el cambio de contraseña, el token para ésta funcionalidad ya fue utilizado o perdió su validez.";
                    ViewBag.MailSoporte = Helper.Parametro.GetValue("MailSoporte");
                    return(View("ErrorToken"));
                }

                try
                {
                    result = _pass.ChangePasswordByMail(model.Password, model.Token).ToString();
                }
                catch (Exception e)
                {
                    _logger.LogErrorException(e, "No fue posible cambiar la contraseña. Exception: " + e.Message);
                    ViewBag.Motivo      = "Error al actualizar datos";
                    ViewBag.Content     = "No fue posible realizar el cambio de contraseña.";
                    ViewBag.MailSoporte = Helper.Parametro.GetValue("MailSoporte");
                    return(View("ErrorToken"));
                }
                if (result == null)
                {
                    _logger.LogError("Ocurrió un error al actualizar la contraseña para el token {0}", model.Token);
                    ViewBag.Motivo      = "Error al actualizar datos";
                    ViewBag.Content     = "No fue posible realizar el cambio de contraseña.";
                    ViewBag.MailSoporte = Helper.Parametro.GetValue("MailSoporte");
                    return(View("ErrorToken"));
                }

                _logger.LogInformation("Cambio de contraseña para el token {0} realizado correctamente.", model.Token);
                ViewBag.Referer = _configuration.GetSection("UrlBackendComercio").Value;
                ViewBag.Motivo  = "Cambio de contraseña exitoso";
                ViewBag.Content = "La contraseña ha sido actualizada satisfactoriamente.";
                return(View("ChangePasswordSuccess"));
            }
            catch (Exception e)
            {
                _logger.LogErrorException(e, "El cambio de contraseña para el token {0} no pudo ser realizado.");
                ViewBag.Motivo      = "Error al actualizar datos";
                ViewBag.Content     = "No fue posible realizar el cambio de contraseña.";
                ViewBag.MailSoporte = Helper.Parametro.GetValue("MailSoporte");
                return(View("ErrorToken"));
            }
        }