示例#1
0
        public GenericResponse <TrabajadorDto> Login(LoginModel usuario)
        {
            GenericResponse <TrabajadorDto> response = new GenericResponse <TrabajadorDto>();

            try
            {
                TrabajadorDto trabajador = servicio.Login(new TrabajadorDto {
                    Usuario = usuario.Usuario, Contrasenia = usuario.Contrasenia
                });

                if (trabajador != null)
                {
                    trabajador.Token = JwtUtil.CrearToken(trabajador.Id, trabajador.Usuario, trabajador.Roles);
                    TrabajadorDto data = trabajador;
                    response.Data    = data;
                    response.Codigo  = 200; // OK
                    response.Error   = false;
                    response.Mensaje = "OK";
                }
                else
                {
                    throw new CustomResponseException("Credenciales incorrectas", 403);
                }
            }
            catch (CustomResponseException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }
            return(response);
        }
示例#2
0
        public void Crear(TrabajadorDto trabajador)
        {
            string hash = BCrypt.Net.BCrypt.HashPassword(trabajador.Contrasenia, 10);

            trabajador.Contrasenia = hash;
            repositorio.Crear(TrabajadorMapper.ToTrabajador(trabajador));
        }
        public IActionResult NullUserId([FromBody] TrabajadorDto trabajadorDto, int id)
        {
            var t = context.Trabajadores.Find(id);

            t.UserId = null;
            context.Update(t);
            context.SaveChanges();
            return(Ok());
        }
        public IActionResult PUT([FromBody] TrabajadorDto trabajadorDto, int id)
        {
            var             sexo     = new Sexo();
            string          fecha    = "";
            DateTime        fechaNac = new DateTime();
            IFormatProvider culture  = new System.Globalization.CultureInfo("en-US", true);

            if (ModelState.IsValid)
            {
                var t = context.Trabajadores.Find(id);
                if (t != null)
                {
                    t.Nombre        = trabajadorDto.Nombre;
                    t.Apellidos     = trabajadorDto.Apellidos;
                    t.Direccion     = trabajadorDto.Direccion;
                    t.Correo        = trabajadorDto.Correo;
                    t.MunicipioId   = trabajadorDto.MunicipioId;
                    t.TelefonoMovil = trabajadorDto.TelefonoMovil;
                    t.TelefonoFijo  = trabajadorDto.TelefonoFijo;

                    //Cambio del sexo y fecha Nacimiento en caso de que cambie el CI
                    if (t.CI != trabajadorDto.CI)
                    {
                        if (trabajadorDto.CI != null)
                        {
                            var sexoCI = int.Parse(trabajadorDto.CI.Substring(9, 1));
                            if (sexoCI % 2 == 0)
                            {
                                sexo = Sexo.M;
                            }
                            else
                            {
                                sexo = Sexo.F;
                            }
                            var siglo = int.Parse(trabajadorDto.CI.Substring(6, 1));
                            if (siglo >= 0 && siglo <= 5)
                            {
                                fecha = "19" + trabajadorDto.CI.Substring(0, 6);
                            }
                            if (siglo >= 6 && siglo <= 8)
                            {
                                fecha = "20" + trabajadorDto.CI.Substring(0, 6);
                            }
                            t.Sexo      = sexo;
                            fechaNac    = DateTime.ParseExact(fecha, "yyyyMMdd", culture);
                            t.Fecha_Nac = fechaNac;
                        }
                    }
                    t.CI = trabajadorDto.CI;
                    context.Update(t);
                }
                return(NotFound());
            }
            return(BadRequest(ModelState));
        }
示例#5
0
        public void Actualizar(TrabajadorDto trabajador)
        {
            Trabajador trabajadorActual = repositorio.BuscarPorId(trabajador.Id);


            trabajadorActual.Nombre = (trabajador.Nombre != null && trabajador.Nombre.Trim() != "")
                ? trabajador.Nombre
                : trabajadorActual.Nombre;
            trabajadorActual.Apellido = (trabajador.Apellido != null && trabajador.Apellido.Trim() != "")
                ? trabajador.Apellido
                : trabajadorActual.Apellido;
            trabajadorActual.Telefono = (trabajador.Telefono != null && trabajador.Telefono.Trim() != "")
                ? trabajador.Telefono
                : trabajadorActual.Telefono;
            trabajadorActual.Dni = (trabajador.Dni != null && trabajador.Dni.Trim() != "")
                ? trabajador.Dni
                : trabajadorActual.Dni;
            trabajadorActual.Email = (trabajador.Email != null && trabajador.Email.Trim() != "")
               ? trabajador.Email
               : trabajadorActual.Email;
            trabajadorActual.Direccion = (trabajador.Direccion != null && trabajador.Direccion.Trim() != "")
               ? trabajador.Direccion
               : trabajadorActual.Direccion;
            trabajadorActual.Sexo = (trabajador.Sexo != null && trabajador.Sexo.Trim() != "")
               ? trabajador.Sexo
               : trabajadorActual.Sexo;
            trabajadorActual.Usuario = (trabajador.Usuario != null && trabajador.Usuario.Trim() != "")
               ? trabajador.Usuario
               : trabajadorActual.Usuario;
            trabajadorActual.Roles = (trabajador.Roles != null && trabajador.Roles.Count() > 0)
               ? RolMapper.ToRoles(trabajador.Roles)
               : trabajadorActual.Roles;

            if (trabajador.Contrasenia != null && trabajador.Contrasenia.Trim() != "")
            {
                string hash = BCrypt.Net.BCrypt.HashPassword(trabajador.Contrasenia, 10);
                trabajadorActual.Contrasenia = hash;
            }
            else
            {
                Trabajador trabActual = repositorio.BuscarPorId(trabajador.Id);

                trabajador.Contrasenia = trabActual.Contrasenia;
                //trabajador.Nombre = (trabajador.Nombre == null || trabajador.Nombre == "") ? trabActual.Nombre : trabajador.Nombre;
            }

            repositorio.Actualizar(trabajadorActual);
        }
示例#6
0
        public GenericResponse <String> Post([FromBody] TrabajadorDto trabajador)
        {
            GenericResponse <String> response = new GenericResponse <String>();

            try
            {
                servicio.Crear(trabajador);
                response = ResponseUtil.CrearRespuestaOk(dataMsg: "El trabajador se creó satisfactoriamente");
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }

            return(response);
        }
示例#7
0
        public GenericResponse <String> Put(int id, [FromBody] TrabajadorDto trabajador)
        {
            GenericResponse <String> response = new GenericResponse <String>();

            try
            {
                trabajador.Id = id;
                servicio.Actualizar(trabajador);
                response = ResponseUtil.CrearRespuestaOk(dataMsg: "El trabajador se actualizado satisfactoriamente");
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }

            return(response);
        }
示例#8
0
        public GenericResponse <TrabajadorDto> Get(int id)
        {
            GenericResponse <TrabajadorDto> response = new GenericResponse <TrabajadorDto>();

            try
            {
                TrabajadorDto data = servicio.BuscarPorId(id);
                response.Data    = data;
                response.Codigo  = 200; // OK
                response.Error   = false;
                response.Mensaje = "OK";
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }
            return(response);
        }
示例#9
0
        public TrabajadorDto Login(TrabajadorDto usuario)
        {
            // Chequeo contraseña
            Trabajador trabajador = repositorio.Login(usuario.Usuario);

            if (trabajador == null)
            {
                return(null);
            }

            bool contraseniaOk = BCrypt.Net.BCrypt.Verify(usuario.Contrasenia, trabajador.Contrasenia);

            if (!contraseniaOk)
            {
                return(null);
            }

            return(TrabajadorMapper.ToTrabajadorDto(trabajador));
        }
示例#10
0
        public GenericResponse <String> EditarCuenta([FromBody] TrabajadorDto trabajador)
        {
            JwtDecodeModel           model    = (JwtDecodeModel)Thread.CurrentPrincipal;
            GenericResponse <String> response = new GenericResponse <String>();

            try
            {
                trabajador.Id    = model.Id;
                trabajador.Roles = null;
                servicio.Actualizar(trabajador);
                response = ResponseUtil.CrearRespuestaOk(dataMsg: "El trabajador se actualizado satisfactoriamente");
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }

            return(response);
        }
示例#11
0
        public static Trabajador ToTrabajador(TrabajadorDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new Trabajador
            {
                Id = dto.Id,
                Nombre = dto.Nombre,
                Apellido = dto.Apellido,
                Direccion = dto.Direccion,
                Dni = dto.Dni,
                Email = dto.Email,
                Sexo = dto.Sexo,
                Telefono = dto.Telefono,
                Usuario = dto.Usuario,
                Roles = RolMapper.ToRoles(dto.Roles),
                Contrasenia = dto.Contrasenia,
                Activo = dto.Activo
            });
        }
 public IActionResult POST([FromBody] TrabajadorDto trabajadorDto)
 {
     if (ModelState.IsValid)
     {
         var trab = context.Trabajadores.FirstOrDefault(s => s.CI == trabajadorDto.CI);
         if (trab != null)
         {
             if (trab.EstadoTrabajador == EstadoTrabajador.Descartado)
             {
                 return(BadRequest($"El trabajador ya está en el sistema y fue descartado de la bolsa"));
             }
             return(BadRequest($"El trabajador ya está en el sistema"));
         }
         else
         {
             // Saber sexo y fecha de cumpleaños por el CI
             var             sexo     = new Sexo();
             string          fecha    = "";
             DateTime        fechaNac = new DateTime();
             IFormatProvider culture  = new System.Globalization.CultureInfo("en-US", true);
             if (trabajadorDto.CI != null)
             {
                 var sexoCI = int.Parse(trabajadorDto.CI.Substring(9, 1));
                 if (sexoCI % 2 == 0)
                 {
                     sexo = Sexo.M;
                 }
                 else
                 {
                     sexo = Sexo.F;
                 }
                 var siglo = int.Parse(trabajadorDto.CI.Substring(6, 1));
                 if (siglo >= 0 && siglo <= 5)
                 {
                     fecha = "19" + trabajadorDto.CI.Substring(0, 6);
                 }
                 if (siglo >= 6 && siglo <= 8)
                 {
                     fecha = "20" + trabajadorDto.CI.Substring(0, 6);
                 }
                 fechaNac = DateTime.ParseExact(fecha, "yyyyMMdd", culture);
             }
             //Crear Trabajadores
             var trabajador = new Trabajador()
             {
                 Nombre           = trabajadorDto.Nombre,
                 Apellidos        = trabajadorDto.Apellidos,
                 CI               = trabajadorDto.CI,
                 Sexo             = sexo,
                 Direccion        = trabajadorDto.Direccion,
                 Correo           = trabajadorDto.Correo,
                 TelefonoMovil    = trabajadorDto.TelefonoMovil,
                 TelefonoFijo     = trabajadorDto.TelefonoFijo,
                 EstadoTrabajador = EstadoTrabajador.Bolsa,
                 Fecha_Nac        = fechaNac,
             };
             context.Trabajadores.Add(trabajador);
             context.SaveChanges();
         }
     }
     return(BadRequest(ModelState));
 }