Esempio n. 1
0
        public RespuestaBD Actualizar(ActualizarEmpleado peticionDeActualizacion)
        {
            using (InoBD db = new InoBD())
            {
                string valoresAntiguos = "";
                if (peticionDeActualizacion.Roles.Count > 0)
                {
                    if (peticionDeActualizacion.Aplicaciones.Count > 0)
                    {
                        Empleado usuarioEncontrado        = db.Empleados.Find(peticionDeActualizacion.IdEmpleado);
                        Empleado correoEncontrado         = db.Empleados.Where(x => x.Correo == peticionDeActualizacion.Correo && x.IdEmpleado != peticionDeActualizacion.IdEmpleado).FirstOrDefault();
                        Empleado documentoEncontrado      = db.Empleados.Where(x => x.NumeroDocumento == peticionDeActualizacion.NumeroDocumento && x.IdEmpleado != peticionDeActualizacion.IdEmpleado).FirstOrDefault();
                        Empleado codigoPlanillaEncontrado = db.Empleados.Where(x => x.CodigoPlanilla == peticionDeActualizacion.CodigoPlanilla && x.IdEmpleado != peticionDeActualizacion.IdEmpleado).FirstOrDefault();
                        valoresAntiguos = JsonConvert.SerializeObject(usuarioEncontrado);
                        if (usuarioEncontrado != null)
                        {
                            if (correoEncontrado != null)
                            {
                                //Mensaje de respuesta
                                respuesta.Id      = 0;
                                respuesta.Mensaje = "El correo del usuario ya existe.";
                            }
                            else if (documentoEncontrado != null)
                            {
                                //Mensaje de respuesta
                                respuesta.Id      = 0;
                                respuesta.Mensaje = "El número de documento del usuario ya existe.";
                            }
                            else if (codigoPlanillaEncontrado != null)
                            {
                                //Mensaje de respuesta
                                respuesta.Id      = 0;
                                respuesta.Mensaje = "El código de planilla del usuario ya existe.";
                            }
                            else
                            {
                                usuarioEncontrado.IdCondicionTrabajo = peticionDeActualizacion.CondicionTrabajo.Id;
                                usuarioEncontrado.IdTipoEmpleado     = peticionDeActualizacion.TipoEmpleado.Id;
                                usuarioEncontrado.IdTipoDocumento    = peticionDeActualizacion.TipoDocumentoIdentidad.Id;
                                LimpiarObjeto(usuarioEncontrado);
                                db.Entry(usuarioEncontrado).CurrentValues.SetValues(peticionDeActualizacion);
                                List <int> idRoles = peticionDeActualizacion.Roles.Select(r => r.IdRol).ToList();
                                List <Rol> roles   = db.Roles.Where(r => idRoles.Contains(r.IdRol)).ToList();
                                foreach (Rol rol in roles)
                                {
                                    usuarioEncontrado.Roles.Add(rol);
                                }
                                List <int> idAplicaciones = peticionDeActualizacion.Aplicaciones.Select(r => r.IdAplicacion).ToList();
                                List <Dominio.Entidades.Aplicacion> aplicaciones = db.Aplicaciones.Where(a => idAplicaciones.Contains(a.IdAplicacion)).ToList();
                                foreach (Dominio.Entidades.Aplicacion aplicacion in aplicaciones)
                                {
                                    usuarioEncontrado.Aplicaciones.Add(aplicacion);
                                }
                                db.SaveChanges();
                                //Mensaje de respuesta
                                respuesta.Id      = usuarioEncontrado.IdEmpleado;
                                respuesta.Mensaje = "Se modificó el empleado correctamente.";

                                // Auditoria
                                AuditoriaGeneral auditoria = new AuditoriaGeneral
                                {
                                    Accion          = "Actualizar",
                                    NombreTabla     = "Empleado",
                                    ValoresAntiguos = valoresAntiguos,
                                    ValoresNuevos   = JsonConvert.SerializeObject(peticionDeActualizacion),
                                    IdUsuario       = peticionDeActualizacion.IdUsuarioModificacion
                                };
                                this._gestorDeAuditoria.AgregarAuditoria(auditoria);
                            }
                        }
                        else
                        {
                            //Mensaje de respuesta
                            respuesta.Id      = 0;
                            respuesta.Mensaje = "El usuario no existe.";
                        }
                    }
                    else
                    {
                        //Mensaje de respuesta
                        respuesta.Id      = 0;
                        respuesta.Mensaje = "No se ha seleccionado ninguna aplicación, verifique.";
                    }
                }
                else
                {
                    //Mensaje de respuesta
                    respuesta.Id      = 0;
                    respuesta.Mensaje = "No se ha seleccionado ningún rol, verifique.";
                }

                return(respuesta);
            }
        }
Esempio n. 2
0
 public RespuestaBD Actualizar(ActualizarEmpleado peticionDeActualizacion)
 {
     return(_gestorDeUsuarios.Actualizar(peticionDeActualizacion));
 }