public HttpResponseMessage Delete(dynamic DynamicClass)
        {
            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            //validaciones antes de ejecutar la llamada.
            if (data.IdUsuario == 0)
            {
                throw new ArgumentNullException("Id");
            }


            HttpResponseMessage httpResponse = new HttpResponseMessage();

            try
            {
                string idUsuario       = data.IdUsuario;
                int    idUsuarioBuscar = int.Parse(idUsuario);
                VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySQL.AutentificacionUsuario.ObtenerUsuario(idUsuarioBuscar);

                if (aus != null && aus.Id > 0)
                {
                    aus.Eliminado = 1;
                    VCFramework.NegocioMySQL.AutentificacionUsuario.ModificarAus(aus);

                    VCFramework.Entidad.Persona persona = VCFramework.NegocioMySQL.Persona.ObtenerPersonaPorUsuId(idUsuarioBuscar);

                    if (persona != null && persona.Id > 0)
                    {
                        persona.Eliminado = 1;
                        VCFramework.NegocioMySQL.Persona.ModificarUsuario(persona);

                        List <VCFramework.EntidadFuncional.UsuarioEnvoltorio> usuarios = VCFramework.NegocioMySQL.AutentificacionUsuario.ListarUsuariosEnvoltorio(aus.InstId);
                        VCFramework.EntidadFuncional.proposalss proposals = new VCFramework.EntidadFuncional.proposalss();

                        if (usuarios != null && usuarios.Count > 0)
                        {
                            proposals.proposals = new List <VCFramework.EntidadFuncional.UsuarioEnvoltorio>();
                            proposals.proposals = usuarios;

                            httpResponse = new HttpResponseMessage(HttpStatusCode.OK);
                            String JSON = JsonConvert.SerializeObject(proposals);
                            httpResponse.Content = new StringContent(JSON);
                            httpResponse.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(VCFramework.NegocioMySQL.Utiles.JSON_DOCTYPE);
                        }
                        else
                        {
                            httpResponse = new HttpResponseMessage(HttpStatusCode.NoContent);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);
                throw ex;
            }
            return(httpResponse);
        }
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data     = JObject.Parse(Input);
            string  usuario  = "";
            string  password = "";

            //validaciones antes de ejecutar la llamada.
            if (data.Usuario != null)
            {
                usuario = data.Usuario;
            }
            if (data.Password != null)
            {
                password = data.Password;
            }


            HttpResponseMessage httpResponse = new HttpResponseMessage();

            VCFramework.Entidad.UsuarioEnvoltorio usu = new UsuarioEnvoltorio();
            try
            {
                VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.Negocio.AutentificacionUsuario.ObtenerPorUsuarioPassword(usuario, password);
                if (aus != null && aus.Id > 0)
                {
                    usu.AutentificacionUsuario = new VCFramework.Entidad.AutentificacionUsuario();
                    usu.AutentificacionUsuario = aus;
                    usu.Rol     = new VCFramework.Entidad.Rol();
                    usu.Rol     = VCFramework.Negocio.Rol.ObtenerPorId(aus.RolId);
                    usu.Persona = new VCFramework.Entidad.Persona();
                    usu.Persona = VCFramework.Negocio.Persona.ObtenerPorAusId(aus.Id);
                    if (usu.Persona != null && usu.Persona.Id > 0)
                    {
                        usu.Region = VCFramework.Negocio.Region.ObtenerPorId(usu.Persona.RegId);
                        usu.Comuna = VCFramework.Negocio.Comuna.ObtenerPorId(usu.Persona.ComId);
                    }
                    httpResponse = new HttpResponseMessage(HttpStatusCode.OK);
                    //retornamos entidad envoletorio
                    String JSON = JsonConvert.SerializeObject(usu);
                    httpResponse.Content = new StringContent(JSON);
                    httpResponse.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(VCFramework.Negocio.Utiles.JSON_DOCTYPE);
                }
                else
                {
                    httpResponse = new HttpResponseMessage(HttpStatusCode.NoContent);
                }
            }
            catch (Exception ex)
            {
                httpResponse = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);
                throw ex;
            }
            return(httpResponse);
        }
        public HttpResponseMessage Get([FromUri] int id)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            //validaciones antes de ejecutar la llamada.
            //este id corresponde al AusId
            if (id == 0)
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Aus Id");
            }
            else
            {
                try
                {
                    int idBuscar = id;

                    VCFramework.Entidad.AutentificacionUsuario     aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorId(idBuscar);
                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usu = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                    if (aus != null && aus.Id > 0)
                    {
                        VCFramework.Entidad.Roles   rol     = VCFramework.NegocioMySql.Roles.ListarRolesPorId(aus.RolId);
                        VCFramework.Entidad.Persona persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(aus.Id);

                        //data de retorno
                        usu.AutentificacionUsuario = new AutentificacionUsuario();
                        usu.AutentificacionUsuario = aus;
                        usu.Persona = new Persona();
                        usu.Persona = persona;
                        usu.Rol     = new Roles();
                        usu.Rol     = rol;
                        VCFramework.Entidad.EntidadContratante contratante = VCFramework.NegocioMySql.EntidadContratante.ListarEcolPorId(aus.EcolId);
                        usu.EntidadContratante = new EntidadContratante();
                        usu.EntidadContratante = contratante;
                        VCFramework.Entidad.ParametrosEcol parametros = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(aus.EcolId);
                        usu.ParametrosEcol = new ParametrosEcol();
                        usu.ParametrosEcol = parametros;

                        httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usu, EnumMensajes.Correcto);
                    }
                    else
                    {
                        httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Usuario_no_existe);
                    }
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Delete([FromUri] string Id, [FromUri] string TipoOperacion)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            //string Input = JsonConvert.SerializeObject(DynamicClass);

            //dynamic data = JObject.Parse(Input);

            //validaciones antes de ejecutar la llamada.
            //este id corresponde al AusId
            if (Id == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Aus Id");
            }
            else if (TipoOperacion == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Tipo Operacion");
            }
            else
            {
                string id            = Id;
                string tipoOperacion = TipoOperacion;
                //buscamos
                VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorId(int.Parse(id));


                try
                {
                    if (aus != null && aus.Id > 0)
                    {
                        VCFramework.Entidad.Roles rol = VCFramework.NegocioMySql.Roles.ListarRolesPorId(aus.RolId);
                        VCFramework.EntidadFuncional.UsuarioEnvoltorio usu = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                        //ya estan seteados los valores asi que se procede a realizar directamente la operacion
                        if (tipoOperacion == "0")
                        {
                            //desactivar
                            VCFramework.NegocioMySql.AutentificacionUsuario.Desactivar(aus);
                            VCFramework.Entidad.Persona persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(int.Parse(id));
                            if (persona != null && persona.Id > 0)
                            {
                                VCFramework.NegocioMySql.Persona.Desactivar(persona);
                            }
                            //data de retorno
                            usu.AutentificacionUsuario = new AutentificacionUsuario();
                            usu.AutentificacionUsuario = aus;
                            usu.Persona = new Persona();
                            usu.Persona = persona;
                            usu.Rol     = new Roles();
                            usu.Rol     = rol;

                            httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usu, EnumMensajes.Registro_desactivado_con_exito);
                        }
                        else if (tipoOperacion == "1")
                        {
                            //activar
                            VCFramework.NegocioMySql.AutentificacionUsuario.Activar(aus);
                            VCFramework.Entidad.Persona persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(int.Parse(id));
                            if (persona != null && persona.Id > 0)
                            {
                                VCFramework.NegocioMySql.Persona.Activar(persona);
                            }
                            //data de retorno
                            usu.AutentificacionUsuario = new AutentificacionUsuario();
                            usu.AutentificacionUsuario = aus;
                            usu.Persona = new Persona();
                            usu.Persona = persona;
                            usu.Rol     = new Roles();
                            usu.Rol     = rol;

                            httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usu, EnumMensajes.Registro_desactivado_con_exito);
                        }
                        else
                        {
                            //eliminar
                            VCFramework.NegocioMySql.AutentificacionUsuario.Eliminar(aus);
                            VCFramework.Entidad.Persona persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(int.Parse(id));
                            if (persona != null && persona.Id > 0)
                            {
                                VCFramework.NegocioMySql.Persona.Eliminar(persona);
                            }
                            //data de retorno
                            usu.AutentificacionUsuario = new AutentificacionUsuario();
                            usu.AutentificacionUsuario = aus;
                            usu.Persona = new Persona();
                            usu.Persona = persona;
                            usu.Rol     = new Roles();
                            usu.Rol     = rol;

                            httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usu, EnumMensajes.Registro_eliminado_con_exito);
                        }
                    }
                    else
                    {
                        httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Usuario_no_existe);
                    }
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }

            return(httpResponse);
        }
        public HttpResponseMessage Put(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            if (data.NombreUsuario == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Nombre de Usuario");
            }
            //password no es requerido ya que puede ser una actualizaciòn de usuario
            else if (data.EcolId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Ecol Id");
            }
            else if (data.RolId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Rol Id");
            }
            else if (data.Nombres == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Nombres");
            }
            else if (data.PrimerApellido == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Primer Apellido");
            }
            //segundo apellido no es requerido
            //run no es requerido
            else if (data.CorreoElectronico == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Correo Electronico");
            }
            //telefono contacto 1 no es requerido
            //telefono contacto 2 no es requerido
            //AusId es el elemento decidor para determinar si es nuevo o modificado
            else if (data.AusId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Aus Id");
            }
            else
            {
                try
                {
                    //variables
                    string nombreUsuario     = data.NombreUsuario;
                    string ecolId            = data.EcolId;
                    string rolId             = data.RolId;
                    string nombres           = data.Nombres;
                    string primerApellido    = data.PrimerApellido;
                    string correoElectronico = data.CorreoElectronico;
                    string ausId             = data.AusId;
                    //variables que son opcionales
                    string password        = "";
                    string passwordEncript = "";
                    if (data.Password != null)
                    {
                        password        = data.Password;
                        passwordEncript = VCFramework.NegocioMySQL.Utiles.Encriptar(password);
                    }
                    string segundoApellido = "";
                    if (data.SegundoApellido != null)
                    {
                        segundoApellido = data.SegundoApellido;
                    }
                    string telefonoContactoUno = "";
                    if (data.TelefonoContactoUno != null)
                    {
                        telefonoContactoUno = data.TelefonoContactoUno;
                    }
                    string telefonoContactoDos = "";
                    if (data.TelefonoContactoDos != null)
                    {
                        telefonoContactoDos = data.TelefonoContactoDos;
                    }
                    string activo = "1";
                    if (data.Activo != null)
                    {
                        activo = data.Activo;
                    }
                    string eliminado = "0";
                    if (data.Eliminado != null)
                    {
                        eliminado = data.Eliminado;
                    }
                    string run = "";
                    if (data.Run != null)
                    {
                        run = data.Run;
                    }

                    //para controlar si es nuevo o antiguo
                    bool esNuevo  = false;
                    int  ausIdInt = int.Parse(ausId);
                    if (ausIdInt == 0)
                    {
                        esNuevo = true;
                    }

                    //Autentificacion usuario
                    VCFramework.Entidad.AutentificacionUsuario ausG = new AutentificacionUsuario();
                    ausG.Activo        = int.Parse(activo);
                    ausG.Eliminado     = int.Parse(eliminado);
                    ausG.EcolId        = int.Parse(ecolId);
                    ausG.NombreUsuario = nombreUsuario;
                    ausG.RolId         = int.Parse(rolId);
                    //persona
                    VCFramework.Entidad.Persona personaG = new Persona();
                    personaG.Activo            = int.Parse(activo);
                    personaG.ApellidoMaterno   = segundoApellido;
                    personaG.ApellidoPaterno   = primerApellido;
                    personaG.AusId             = int.Parse(ausId);
                    personaG.CorreoElectronico = correoElectronico;
                    personaG.Eliminado         = int.Parse(eliminado);
                    personaG.Nombres           = nombres;
                    personaG.Run = run;
                    personaG.TelefonoContactoDos = telefonoContactoDos;
                    personaG.TelefonoContactoUno = telefonoContactoUno;
                    //rol
                    VCFramework.Entidad.Roles rolG = VCFramework.NegocioMySql.Roles.ListarRolesPorId(int.Parse(rolId));
                    //retorno de entidad
                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usuario = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();

                    //si el usuario es nuevo
                    if (esNuevo)
                    {
                        //antes de todo se debe verificar si ya no llegò al tope de licencias contratadas
                        int cantidadUsuarios = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorEcolId(ausG.EcolId).Count;
                        VCFramework.Entidad.ParametrosEcol param = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(ausG.EcolId);
                        int cantidadPermitida = 1;
                        if (param != null && param.Id > 0)
                        {
                            cantidadPermitida = param.TopeUsuarios;
                        }
                        if (cantidadUsuarios <= cantidadPermitida)
                        {
                            //esta insertando
                            //obtenemos por nombre usuario para verificar si ya existe
                            VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorNombreUsuario(nombreUsuario);
                            if (aus != null && aus.Id == 0)
                            {
                                //todo bien, seguir
                                ausG.Password      = passwordEncript;
                                ausG.FechaCreacion = VCFramework.NegocioMySQL.Utiles.ConstruyeFechaDos(DateTime.Now);
                                int idAus = VCFramework.NegocioMySql.AutentificacionUsuario.Insertar(ausG);
                                ausG.Id        = idAus;
                                personaG.AusId = idAus;
                                int idPer = VCFramework.NegocioMySql.Persona.Insertar(personaG);
                                personaG.Id = idPer;
                                //nuevo elemento a retornar
                                usuario.AutentificacionUsuario = new AutentificacionUsuario();
                                usuario.AutentificacionUsuario = ausG;
                                usuario.Persona = new Persona();
                                usuario.Persona = personaG;
                                usuario.Rol     = new Roles();
                                usuario.Rol     = rolG;
                                //todo correcto en la creacion
                                httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usuario, EnumMensajes.Registro_creado_con_exito);
                                //correo de creacion de usuario
                                //revisamos si tiene la capacidad de enviar correo o no
                                if (param.EnviaCorreo == 1)
                                {
                                    bool enviar = VCFramework.NegocioMySQL.Utiles.EnviarCorreoCreacionUsuario(correoElectronico, nombreUsuario, password);
                                }
                            }
                            else
                            {
                                //ya existe, error
                                httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Usuario_ya_existe);
                            }
                        }
                        else
                        {
                            //excede el maximo permitido
                            httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Excede_maximo_permitido_de_usuarios);
                        }
                    }
                    else
                    {
                        //esta modificando hay que buscar a la persona
                        VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorId(int.Parse(ausId));
                        VCFramework.Entidad.Persona per = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(int.Parse(ausId));
                        if (aus != null && aus.Id > 0)
                        {
                            //usuario ya existe esta correcto
                            ausG.Id            = aus.Id;
                            ausG.FechaCreacion = aus.FechaCreacion;
                            if (password.Length > 0)
                            {
                                ausG.Password = passwordEncript;
                            }
                            else
                            {
                                ausG.Password = aus.Password;
                            }
                            VCFramework.NegocioMySql.AutentificacionUsuario.Modificar(ausG);

                            personaG.Id    = per.Id;
                            personaG.AusId = per.AusId;

                            VCFramework.NegocioMySql.Persona.Modificar(personaG);
                            //nuevo elemento a retornar

                            usuario.AutentificacionUsuario = new AutentificacionUsuario();
                            usuario.AutentificacionUsuario = ausG;
                            usuario.Persona = new Persona();
                            usuario.Persona = personaG;
                            usuario.Rol     = new Roles();
                            usuario.Rol     = rolG;
                            //todo correcto en la creacion
                            httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usuario, EnumMensajes.Registro_modificado_con_exito);
                        }
                        else
                        {
                            //usuario no existe
                            httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Usuario_no_existe);
                        }
                    }
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }

            return(httpResponse);
        }
Exemple #6
0
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            //validaciones antes de ejecutar la llamada.
            if (data.usuario == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Nombre de Usuario");
            }
            else if (data.password == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Password");
            }
            else
            {
                try
                {
                    string usu  = data.usuario;
                    string pass = data.password;

                    string password = VCFramework.NegocioMySQL.Utiles.Encriptar(pass);

                    VCFramework.Entidad.AutentificacionUsuario     aus     = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorNombreUsuario(usu);
                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usuario = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                    if (aus != null && aus.Id > 0)
                    {
                        //verificamos eliminado y activo
                        if (aus.Activo == 1 && aus.Eliminado == 0)
                        {
                            //ahora comparamos la clave
                            if (aus.Password == password)
                            {
                                //buscamos persona
                                VCFramework.Entidad.Persona persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(aus.Id);
                                if (persona != null && persona.Id > 0)
                                {
                                    //buscamos rol
                                    VCFramework.Entidad.Roles rol = VCFramework.NegocioMySql.Roles.ListarRolesPorId(aus.RolId);
                                    if (rol != null && rol.Id > 0)
                                    {
                                        //ahora esta todo ok y construimos la data respectiva
                                        usuario.AutentificacionUsuario = new AutentificacionUsuario();
                                        usuario.AutentificacionUsuario = aus;
                                        usuario.Persona = new Persona();
                                        usuario.Persona = persona;
                                        usuario.Rol     = new Roles();
                                        usuario.Rol     = rol;
                                        VCFramework.Entidad.EntidadContratante contratante = VCFramework.NegocioMySql.EntidadContratante.ListarEcolPorId(aus.EcolId);
                                        usuario.EntidadContratante = new EntidadContratante();
                                        usuario.EntidadContratante = contratante;
                                        VCFramework.Entidad.ParametrosEcol parametros = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(aus.EcolId);
                                        usuario.ParametrosEcol = new ParametrosEcol();
                                        usuario.ParametrosEcol = parametros;

                                        httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usuario);
                                    }
                                    else
                                    {
                                        httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Sin_Rol_asociado);
                                    }
                                }
                                else
                                {
                                    httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Sin_persona_asociada);
                                }
                            }
                            else
                            {
                                httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Clave_incorrecta);
                            }
                        }
                        else
                        {
                            //autentificacion inactiva o eliminada
                            httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Inactivo_o_Eliminado);
                        }
                    }
                    else
                    {
                        httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, EnumMensajes.Usuario_no_existe);
                    }
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Put(dynamic DynamicClass)
        {
            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            string idUsuario = data.Id;

            if (idUsuario == null)
            {
                idUsuario = "0";
            }
            int idUsuarioBuscar = int.Parse(idUsuario);


            //validaciones antes de ejecutar la llamada.
            VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySQL.AutentificacionUsuario.ObtenerUsuario(idUsuarioBuscar);

            HttpResponseMessage httpResponse = new HttpResponseMessage();

            try
            {
                string correo          = data.Correo;
                string nombres         = data.Nombres;
                string primerApellido  = data.PrimerApellido;
                string segundoApellido = data.SegundoApellido;
                string rut             = data.Rut;
                string telefono        = data.Telefono;
                string idRegion        = data.IdRegion;
                string idComuna        = data.IdComuna;
                string direccion       = data.Direccion;
                string idRol           = data.IdRol;
                string nombreUsuario   = data.NombreUsuario;
                string password        = data.Password;
                string instId          = data.InstId;
                if (aus == null)
                {
                    aus = new VCFramework.Entidad.AutentificacionUsuario();
                }

                if (aus != null)
                {
                    int nuevoId = 0;

                    if (aus.Id == 0)
                    {
                        aus.NombreUsuario = nombreUsuario;
                    }
                    aus.CorreoElectronico = correo;
                    aus.RolId             = int.Parse(idRol);
                    aus.InstId            = int.Parse(instId);
                    aus.EsVigente         = 1;
                    if (password != "")
                    {
                        aus.Password = VCFramework.NegocioMySQL.Utiles.Encriptar(password);
                    }
                    if (aus.Id == 0)
                    {
                        nuevoId = VCFramework.NegocioMySQL.AutentificacionUsuario.InsertarAus(aus);
                    }
                    else
                    {
                        nuevoId = aus.Id;
                        VCFramework.NegocioMySQL.AutentificacionUsuario.ModificarAus(aus);
                    }
                    VCFramework.Entidad.Persona persona = VCFramework.NegocioMySQL.Persona.ObtenerPersonaPorUsuId(idUsuarioBuscar);

                    if (persona == null)
                    {
                        persona = new VCFramework.Entidad.Persona();
                    }

                    if (persona != null)
                    {
                        persona.ApellidoMaterno   = segundoApellido;
                        persona.ApellidoPaterno   = primerApellido;
                        persona.ComId             = int.Parse(idComuna);
                        persona.DireccionCompleta = direccion;
                        persona.Nombres           = nombres;
                        persona.RegId             = int.Parse(idRegion);
                        persona.Rut       = rut;
                        persona.Telefonos = telefono;
                        persona.InstId    = int.Parse(instId);
                        persona.UsuId     = nuevoId;
                        VCFramework.NegocioMySQL.Persona.ModificarUsuario(persona);

                        httpResponse = new HttpResponseMessage(HttpStatusCode.OK);
                        String JSON = JsonConvert.SerializeObject(persona);
                        httpResponse.Content = new StringContent(JSON);
                        httpResponse.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(VCFramework.NegocioMySQL.Utiles.JSON_DOCTYPE);
                    }
                }
            }
            catch (Exception ex)
            {
                httpResponse = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);
                throw ex;
            }

            return(httpResponse);
        }