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); } }
public RespuestaBD Actualizar(ActualizarEmpleado peticionDeActualizacion) { return(_gestorDeUsuarios.Actualizar(peticionDeActualizacion)); }