public IHttpActionResult AddUsuario() { string jsonString = getFormKeyValue("json"); Usuario usuario = new Usuario(); ResultadoOperacionDto resultado = new ResultadoOperacionDto(); resultado.Resultado = true; JsonConvert.PopulateObject(jsonString, usuario); var correoEnvioNotificacion = usuario.CorreoElectronico; var esLoginActiveDirectory = bool.Parse(ConfigurationManager.AppSettings.Get("LoginActiveDirectory")); if (esLoginActiveDirectory) { if (activeDirectoryConnection == null) { var tipoLoginLDAP = ConfigurationManager.AppSettings.Get("TipoLoginLDAP"); activeDirectoryConnection = (IActiveDirectoryConnection)ServiceLocator.ObtenerFabricaSpring().GetObject(tipoLoginLDAP); } resultado = activeDirectoryConnection.ObtenerUsuario(usuario.CorreoElectronico); correoEnvioNotificacion = null; if (resultado.Resultado && resultado.InformacionExtra != null) { correoEnvioNotificacion = ((UsuarioDto)resultado.InformacionExtra).CorreoElectronico; } else if (UtilAbax.esCorreoValido(usuario.CorreoElectronico)) { correoEnvioNotificacion = usuario.CorreoElectronico; } } //if (resultado.Resultado) { resultado = ValidateUsuario(usuario); if (string.IsNullOrEmpty(resultado.Mensaje)) { var urlHref = getFormKeyValue("urlHref"); if (String.IsNullOrWhiteSpace(urlHref) || urlHref.Contains("localhost") || urlHref.Contains("127.0.0.1")) { urlHref = GetUrlContext(); } resultado = UsuarioService.GuardarUsuario(usuario, IdUsuarioExec, urlHref, correoEnvioNotificacion); var usuarioEmpresa = new UsuarioEmpresa(); usuarioEmpresa.IdUsuario = Convert.ToInt64(resultado.InformacionExtra.ToString()); usuarioEmpresa.IdEmpresa = IdEmpresa; resultado = UsuarioService.GuardarUsuarioEmpresa(usuarioEmpresa, IdUsuarioExec); resultado.Mensaje = resultado.Resultado ? AbaxXbrl.UsuarioGuardado : AbaxXbrl.ErrorUsuarioGuardado; } return(Ok(resultado)); }
public IHttpActionResult UpdateUsuario() { var jsonString = getFormKeyValue("json"); var usuario = new Usuario(); var correoNotificacion = ""; JsonConvert.PopulateObject(jsonString, usuario); ResultadoOperacionDto resultado = ValidateUsuario(usuario); if (string.IsNullOrEmpty(resultado.Mensaje)) { var user = UsuarioService.ObtenerUsuarioPorId(usuario.IdUsuario).InformacionExtra as Usuario; user.Nombre = usuario.Nombre; user.ApellidoPaterno = usuario.ApellidoPaterno; user.ApellidoMaterno = usuario.ApellidoMaterno; user.CorreoElectronico = usuario.CorreoElectronico; user.Puesto = usuario.Puesto; correoNotificacion = user.CorreoElectronico; var esLoginActiveDirectory = bool.Parse(ConfigurationManager.AppSettings.Get("LoginActiveDirectory")); if (esLoginActiveDirectory) { if (activeDirectoryConnection == null) { var tipoLoginLDAP = ConfigurationManager.AppSettings.Get("TipoLoginLDAP"); activeDirectoryConnection = (IActiveDirectoryConnection)ServiceLocator.ObtenerFabricaSpring().GetObject(tipoLoginLDAP); } resultado = activeDirectoryConnection.ObtenerUsuario(usuario.CorreoElectronico); correoNotificacion = null; if (resultado.Resultado && resultado.InformacionExtra != null) { correoNotificacion = ((UsuarioDto)resultado.InformacionExtra).CorreoElectronico; } else if (UtilAbax.esCorreoValido(usuario.CorreoElectronico)) { correoNotificacion = usuario.CorreoElectronico; } } resultado = UsuarioService.GuardarUsuario(user, IdUsuarioExec, GetUrlContext(), correoNotificacion); resultado.Mensaje = resultado.Resultado ? AbaxXbrl.UsuarioGuardado : AbaxXbrl.ErrorUsuarioGuardado; } return(Ok(resultado)); }
public ResultadoOperacionDto GuardarUsuario(Usuario usuario, long idUsuarioExec, String url, String correoElectronico) { var esLoginActiveDirectory = bool.Parse(ConfigurationManager.AppSettings.Get("LoginActiveDirectory")); var resultado = new ResultadoOperacionDto(); try { bool envio = false; var pass = String.Empty; if (usuario.IdUsuario == 0) { usuario.Activo = true; if (esLoginActiveDirectory) { usuario.VigenciaPassword = DateTime.Now.AddYears(50); } else { usuario.VigenciaPassword = DateTime.Now.AddDays(-1); } usuario.Bloqueado = false; usuario.HistoricoPassword = String.Empty; usuario.IntentosErroneosLogin = 0; pass = UtilAbax.GenerarCodigo(); usuario.Password = pass; var salt = usuario.Password.Substring(usuario.Password.Length - PasswordHashGenerator.TAMANIO_B64_NUMERO_SALT); usuario.Password = PasswordHashGenerator.CreatePasswordHash(usuario.Password, salt); envio = true; } var param = new List <object>() { usuario.CorreoElectronico }; var informacionAuditoria = new InformacionAuditoriaDto(idUsuarioExec, usuario.IdUsuario == 0 ? ConstantsAccionAuditable.Insertar : ConstantsAccionAuditable.Actualizar, ConstantsModulo.Usuarios, usuario.IdUsuario == 0 ? MensajesServicios.InsertarUsuario : MensajesServicios.Actualizarusuario, param); resultado = Repository.GuardarUsuario(usuario); resultado.InformacionAuditoria = informacionAuditoria; if (resultado.Resultado && envio && (!esLoginActiveDirectory || UtilAbax.esCorreoValido(usuario.CorreoElectronico))) { Repository.EnvioCorreoRegistro(usuario, pass, url); } else if (resultado.Resultado && envio && esLoginActiveDirectory && correoElectronico != null) { Repository.EnvioCorreoRegistroLDAP(usuario, url, correoElectronico); } } catch (Exception exception) { resultado.Resultado = false; resultado.Mensaje = exception.Message; resultado.InformacionExtra = exception; } return(resultado); }