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 ValidarUsuarioDirectorioActivo()
        {
            var NombreUsuario = getFormKeyValue("nombreUsuario");

            if (activeDirectoryConnection == null)
            {
                var tipoLoginLDAP = ConfigurationManager.AppSettings.Get("TipoLoginLDAP");
                activeDirectoryConnection = (IActiveDirectoryConnection)ServiceLocator.ObtenerFabricaSpring().GetObject(tipoLoginLDAP);
            }

            var resultadoOperacion = activeDirectoryConnection.ObtenerUsuario(NombreUsuario);

            return(Ok(resultadoOperacion));
        }
        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));
        }