Exemplo n.º 1
0
        public HttpResponseMessage Put(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            if (data.AusId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "AusId");
            }
            //password no es requerido ya que puede ser una actualizaciòn de usuario
            else if (data.Run == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Run");
            }
            else if (data.EcolId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Ecol Id");
            }
            else if (data.FechaAtencion == null)
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Fecha Atencion");
            }
            else
            {
                try
                {
                    //variables
                    int      nuevoId       = 0;
                    string   ausId         = data.AusId;
                    string   run           = data.Run;
                    string   ecolId        = data.EcolId;
                    DateTime fechaAtencion = data.FechaAtencion;
                    string   fechaActual   = VCFramework.NegocioMySQL.Utiles.ConstruyeFechaDos(DateTime.Now);
                    string   fechaAt       = fechaAtencion.ToShortDateString() + " " + fechaAtencion.ToShortTimeString();

                    VCFramework.Entidad.RegistroImpresion entidad = new VCFramework.Entidad.RegistroImpresion();
                    entidad.AusId  = int.Parse(ausId);
                    entidad.EcolId = int.Parse(ecolId);
                    entidad.Fecha  = fechaActual;

                    entidad.FechaAtencion = fechaAt.Replace("/", "-");
                    entidad.Run           = run.Replace(".", "").Replace("-", "");

                    nuevoId    = VCFramework.NegocioMySql.RegistroImpresion.Insertar(entidad);
                    entidad.Id = nuevoId;

                    httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, entidad, EnumMensajes.Registro_modificado_con_exito);
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, 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);
        }
Exemplo n.º 3
0
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();
            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            if (data.RolId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Rol Id");
            }
            else if (data.EcolId == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Ecol Id");
            }
            else
            {
                try
                {
                    string rolId    = data.RolId;
                    string ecolId   = data.EcolId;
                    int    idBuscar = int.Parse(rolId);

                    List <VCFramework.Entidad.EntidadContratante> contratantes = new List <VCFramework.Entidad.EntidadContratante>();

                    if (idBuscar == 1)
                    {
                        //super administrador
                        contratantes = VCFramework.NegocioMySql.EntidadContratante.ListarTodos();
                    }
                    else
                    {
                        //todos sin el super
                        contratantes = VCFramework.NegocioMySql.EntidadContratante.ListarTodos().FindAll(p => p.Id == int.Parse(ecolId));
                    }

                    httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, contratantes);
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Get([FromUri] string email, [FromUri] string nombreUsuario, [FromUri] string password)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            //validaciones antes de ejecutar la llamada.
            //este id corresponde al AusId
            if (nombreUsuario == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "nombre de usuario");
            }
            else if (email == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "email");
            }
            else if (password == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "password");
            }
            else
            {
                try
                {
                    bool resultado = false;
                    VCFramework.Entidad.AutentificacionUsuario aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorNombreUsuario(nombreUsuario);
                    if (aus != null && aus.Id > 0)
                    {
                        string nuevaPass = VCFramework.NegocioMySQL.Utiles.Encriptar(password);
                        aus.Password = nuevaPass;
                        VCFramework.NegocioMySql.AutentificacionUsuario.Modificar(aus);

                        resultado = VCFramework.NegocioMySQL.Utiles.EnviarCorreoCambioClave(email, nombreUsuario, password);
                    }
                    httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, resultado);
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();
            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            if (data.Email == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Email, recuperar clave");
            }
            else if (data.NombreUsuario == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Nombre usuario, recuperar clave");
            }
            else if (data.Password == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Password, recuperar clave");
            }
            else
            {
                try
                {
                    string email         = data.Email;
                    string nomberUsuario = data.NombreUsuario;
                    string pass          = data.Password;
                    string password      = VCFramework.NegocioMySQL.Utiles.DesEncriptar(pass);
                    bool   resultado     = VCFramework.NegocioMySQL.Utiles.EnviarCorreoRecuperacionClave(email, nomberUsuario, password);

                    httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, resultado);
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            if (data.Run == "")
            {
                httpResponse = ManejoMensajes.RetornaMensajeParametroVacio(httpResponse, EnumMensajes.Parametro_vacio_o_invalido, "Rol Id");
            }
            else
            {
                string run   = data.Run;
                string idRyf = "";
                try
                {
                    //OBTENEMOS EL IDRYF
                    VCFramework.EntidadFuncional.Persona perRyf = new VCFramework.EntidadFuncional.Persona();
                    perRyf = VCFramework.NegocioMySql.PersonaRYF.ListarPersonaPorRun(run);

                    if (perRyf != null && perRyf.Id > 0)
                    {
                        idRyf = perRyf.Id.ToString();

                        ServicioVisor.visor_clService servicio = new ServicioVisor.visor_clService();
                        ServicioVisor.Request_TT      request  = new ServicioVisor.Request_TT();
                        request.IdentificadorProfesional     = "0";
                        request.IdentificadorUnicoPaciente   = idRyf;
                        request.NumeroIdentificacionPaciente = run;
                        request.SistemaSolicitaConsulta      = 1;
                        request.TipoIdentificacionPaciente   = 1;
                        ServicioVisor.responseTT response = servicio.ObtenerURLVisorHCC(request);
                        if (response != null && response.URL.Length > 0)
                        {
                            //hay que sobrescribir la url ya que se usará de forma local
                            //https://previsor.saludenred.cl/#/NzA0Nzk1OTE=/MQ==/ODkxMDc2OA==/ACF6B3904AC3317878F7837BE03C7B9F
                            //algo asi como

                            /*
                             * /#/NzA0Nzk1OTE=/MQ==/ODkxMDc2OA==/ACF6B3904AC3317878F7837BE03C7B9F
                             */
                            // y dejarlo

                            /*
                             * /#/NzA0Nzk1OTE=/MQ==/ODkxMDc2OA==/ACF6B3904AC3317878F7837BE03C7B9F/arraydecodigosdeis=12,34,33
                             * por mientras la dejamos solita
                             */
                            //vamos a procesar la url
                            string[] elementos = response.URL.Split('#');
                            //los sacamos de atrás para adelante, necesitamos los 4 ultimos
                            System.Text.StringBuilder sb = new System.Text.StringBuilder();

                            if (elementos != null && elementos.Length > 1)
                            {
                                sb.Append(elementos[1]);
                            }
                            EntidadUrl entidad = new EntidadUrl();
                            entidad.UrlVisor = response.URL;
                            entidad.UrlHash  = sb.ToString();

                            httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, entidad);
                        }
                        else
                        {
                            httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, 1000, "Error al obtener url de visor");
                        }
                    }
                    else
                    {
                        httpResponse = ManejoMensajes.RetornaMensajeError(httpResponse, 1000, "Error en la BD de RYF, usuario no existe, valor nulo");
                    }
                }
                catch (Exception ex)
                {
                    VCFramework.NegocioMySQL.Utiles.NLogs(ex);
                    httpResponse = ManejoMensajes.RetornaMensajeExcepcion(httpResponse, ex);
                }
            }
            return(httpResponse);
        }
        public HttpResponseMessage Post(dynamic DynamicClass)
        {
            HttpResponseMessage httpResponse = new HttpResponseMessage();

            string Input = JsonConvert.SerializeObject(DynamicClass);

            dynamic data = JObject.Parse(Input);

            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
            {
                try
                {
                    string ecolId = data.EcolId;
                    string rolId  = data.RolId;

                    //buscamos a los usuarios dependiendo de algunos factores
                    //si el rol es Super Administrador
                    List <VCFramework.EntidadFuncional.UsuarioEnvoltorio> usuarios = new List <VCFramework.EntidadFuncional.UsuarioEnvoltorio>();
                    if (int.Parse(rolId) == 1)
                    {
                        //si el valor de nodid = 0 es todos
                        if (int.Parse(ecolId) == 0)
                        {
                            List <VCFramework.Entidad.AutentificacionUsuario> aus = VCFramework.NegocioMySql.AutentificacionUsuario.Listar();
                            if (aus != null && aus.Count > 0)
                            {
                                foreach (VCFramework.Entidad.AutentificacionUsuario au in aus)
                                {
                                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usuEnv = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                                    usuEnv.AutentificacionUsuario = new AutentificacionUsuario();
                                    usuEnv.AutentificacionUsuario = au;
                                    usuEnv.Persona = new Persona();
                                    usuEnv.Persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(au.Id);
                                    usuEnv.Rol     = new Roles();
                                    usuEnv.Rol     = VCFramework.NegocioMySql.Roles.ListarRolesPorId(au.RolId);
                                    VCFramework.Entidad.EntidadContratante contratante = VCFramework.NegocioMySql.EntidadContratante.ListarEcolPorId(au.EcolId);
                                    usuEnv.EntidadContratante = new EntidadContratante();
                                    usuEnv.EntidadContratante = contratante;
                                    VCFramework.Entidad.ParametrosEcol parametros = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(au.EcolId);
                                    usuEnv.ParametrosEcol = new ParametrosEcol();
                                    usuEnv.ParametrosEcol = parametros;
                                    usuarios.Add(usuEnv);
                                }
                            }
                        }
                        else
                        {
                            List <VCFramework.Entidad.AutentificacionUsuario> aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorEcolId(int.Parse(ecolId));
                            if (aus != null && aus.Count > 0)
                            {
                                foreach (VCFramework.Entidad.AutentificacionUsuario au in aus)
                                {
                                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usuEnv = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                                    usuEnv.AutentificacionUsuario = new AutentificacionUsuario();
                                    usuEnv.AutentificacionUsuario = au;
                                    usuEnv.Persona = new Persona();
                                    usuEnv.Persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(au.Id);
                                    usuEnv.Rol     = new Roles();
                                    usuEnv.Rol     = VCFramework.NegocioMySql.Roles.ListarRolesPorId(au.RolId);
                                    VCFramework.Entidad.EntidadContratante contratante = VCFramework.NegocioMySql.EntidadContratante.ListarEcolPorId(au.EcolId);
                                    usuEnv.EntidadContratante = new EntidadContratante();
                                    usuEnv.EntidadContratante = contratante;
                                    VCFramework.Entidad.ParametrosEcol parametros = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(au.EcolId);
                                    usuEnv.ParametrosEcol = new ParametrosEcol();
                                    usuEnv.ParametrosEcol = parametros;
                                    usuarios.Add(usuEnv);
                                }
                            }
                        }
                    }
                    else
                    {
                        List <VCFramework.Entidad.AutentificacionUsuario> aus = VCFramework.NegocioMySql.AutentificacionUsuario.ListarUsuariosPorEcolId(int.Parse(ecolId));
                        if (aus != null && aus.Count > 0)
                        {
                            foreach (VCFramework.Entidad.AutentificacionUsuario au in aus)
                            {
                                if (au.RolId != 1)
                                {
                                    VCFramework.EntidadFuncional.UsuarioEnvoltorio usuEnv = new VCFramework.EntidadFuncional.UsuarioEnvoltorio();
                                    usuEnv.AutentificacionUsuario = new AutentificacionUsuario();
                                    usuEnv.AutentificacionUsuario = au;
                                    usuEnv.Persona = new Persona();
                                    usuEnv.Persona = VCFramework.NegocioMySql.Persona.ListarPersonaPorAusId(au.Id);
                                    usuEnv.Rol     = new Roles();
                                    usuEnv.Rol     = VCFramework.NegocioMySql.Roles.ListarRolesPorId(au.RolId);
                                    VCFramework.Entidad.EntidadContratante contratante = VCFramework.NegocioMySql.EntidadContratante.ListarEcolPorId(au.EcolId);
                                    usuEnv.EntidadContratante = new EntidadContratante();
                                    usuEnv.EntidadContratante = contratante;
                                    VCFramework.Entidad.ParametrosEcol parametros = VCFramework.NegocioMySql.ParametrosEcol.ListarPorEcolId(au.EcolId);
                                    usuEnv.ParametrosEcol = new ParametrosEcol();
                                    usuEnv.ParametrosEcol = parametros;
                                    usuarios.Add(usuEnv);
                                }
                            }
                        }
                    }

                    httpResponse = ManejoMensajes.RetornaMensajeCorrecto(httpResponse, usuarios);
                }
                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);
        }
Exemplo n.º 10
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);
        }