public ActionResult Update(ActualizarDatosViewModel actualizarDatosViewModel) { try { BindTaxQuality(actualizarDatosViewModel); using (bdFacturacionElectronicaEntities entities = new bdFacturacionElectronicaEntities()) { tblUsuariosProveedor userProvider = UpdateUserProvider(actualizarDatosViewModel, entities); if (userProvider.Email.ToLower().Equals(actualizarDatosViewModel.Emaildb.ToLower())) { GenerateAlert("success", "Actualización éxitosa", "La actualización se ha realizado correctamente", "/Menu/MenuProveedor"); } else { UsuarioActivacion userActivation = InsertUserActivation(userProvider); SendActivationLinkEmail(userProvider, userActivation); FormsAuthentication.SignOut(); GenerateAlert("success", "Actualización éxitosa", "La actualización se ha realizado correctamente, debido a que el email ha cambiado, se debe activar nuevamente la cuenta, verifique el link de activación que fue enviado al email.", "/"); } } } catch (DbEntityValidationException exception) { GenerateAlert("error", "error", "validación de modelo", string.Empty); } catch (Exception exception) { GenerateAlert("error", "error", exception.Message, string.Empty); } return(View("Index", actualizarDatosViewModel)); }
private UsuarioActivacion InsertUserActivation(tblUsuariosProveedor userModel) { using (bdFacturacionElectronicaEntities entities = new bdFacturacionElectronicaEntities()) { UsuarioActivacion userActivation = new UsuarioActivacion(); userActivation.UsuarioID = userModel.ID; userActivation.ActivacionCodigo = Guid.NewGuid(); entities.UsuarioActivacion.Add(userActivation); entities.SaveChanges(); return(userActivation); } }
private void AddProviderUser(InscripcionViewModel inscripcionViewModel) { try { tblUsuariosProveedor providerUser = InsertUserProvider(inscripcionViewModel); UsuarioActivacion userActivation = InsertUserActivation(providerUser); SendActivationLinkEmail(providerUser, userActivation); GenerateAlert("success", "Inscripción éxitosa", "La inscripción se ha realizado correctamente, recuerde activar su cuenta mediante el link de activación que se le acaba de enviar al email", "/"); } catch (DbEntityValidationException) { GenerateAlert("error", "error", "validación de modelo", string.Empty); } catch (Exception exception) { GenerateAlert("error", "error", exception.Message, string.Empty); } }
private void SendActivationLinkEmail(tblUsuariosProveedor userModel, UsuarioActivacion userActivation) { string path = string.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority); string activationLink = string.Format("{0}/Login/LinkActivacion/?userId={1}&&activactioncode={2}", path, userActivation.UsuarioID, userActivation.ActivacionCodigo); SmtpClient client = new SmtpClient("smtp.office365.com", 587); client.EnableSsl = true; client.Credentials = new NetworkCredential("*****@*****.**", "Afes2018*#"); MailAddress from = new MailAddress("*****@*****.**", String.Empty, Encoding.UTF8); MailAddress to = new MailAddress(userModel.Email); MailMessage message = new MailMessage(from, to) { Body = string.Format("Cordial saludo. <br/> Este es el link de activación del usuario que acabas de actualizar <b>{0}</b>, por favor haga clic en el siguiente link para poder activar su cuenta <a href='{1}' alt='link de activación'>ACTIVAR CUENTA</a>", userModel.UsuarioNit, activationLink), IsBodyHtml = true, Priority = MailPriority.High, BodyEncoding = Encoding.UTF8, Subject = "Link de activación Portal Proveedores - Facturación Electrónica", SubjectEncoding = Encoding.UTF8 }; client.Send(message); }
private void ActivateUser(bdFacturacionElectronicaEntities entities, int userIdFind, UsuarioActivacion activationRegister) { activationRegister = entities.UsuarioActivacion.Remove(activationRegister); if (activationRegister != null) { var userModel = entities.tblUsuariosProveedor.SingleOrDefault(u => u.ID == userIdFind); if (userModel != null) { userModel.UsuarioNit = userModel.UsuarioNit.ToUpper(); userModel.Password = userModel.Password; userModel.RazonSocial = userModel.RazonSocial.ToUpper(); userModel.IDCalidadTributaria = userModel.IDCalidadTributaria; userModel.Email = userModel.Email.ToUpper(); userModel.Telefono = userModel.Telefono.ToUpper(); userModel.Direccion = userModel.Direccion.ToUpper(); userModel.RepresentanteLegal = userModel.RepresentanteLegal.ToUpper(); userModel.RutaRut = userModel.RutaRut; userModel.RutaCamaraComercio = userModel.RutaCamaraComercio; userModel.Estado = "ACTIVO"; } entities.SaveChanges(); GenerateAlert("success", "Activación de cuenta", "Su cuenta ha sido activada correctamente, ya puede iniciar sesión", "/"); } }