public RespuestaBD Crear(NuevoEmpleado peticionDeCreacion) { using (InoBD db = new InoBD()) { //var idRoles = Array.ConvertAll(peticionDeCreacion.IdRoles.Split(','), int.Parse); //List<Rol> roles = db.Roles.Where(x => x.EsActivo == true && idRoles.Contains(x.IdRol)).ToList(); Empleado empleado = Mapper.Map <Empleado>(peticionDeCreacion); if (peticionDeCreacion.Roles.Count > 0) { if (peticionDeCreacion.Aplicaciones.Count > 0) { Empleado usuarioEncontrado = db.Empleados.Where(x => x.Usuario == peticionDeCreacion.Usuario).FirstOrDefault(); Empleado correoEncontrado = db.Empleados.Where(x => x.Correo == peticionDeCreacion.Correo).FirstOrDefault(); Empleado documentoEncontrado = db.Empleados.Where(x => x.NumeroDocumento == peticionDeCreacion.NumeroDocumento).FirstOrDefault(); Empleado codigoPlanillaEncontrado = db.Empleados.Where(x => x.CodigoPlanilla == peticionDeCreacion.CodigoPlanilla).FirstOrDefault(); if (usuarioEncontrado != null) { //Mensaje de respuesta respuesta.Id = 0; respuesta.Mensaje = "El nombre de usuario ya existe."; } else 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 { empleado.Contrasena = Security.HashSHA1(peticionDeCreacion.Contrasena); LimpiarObjeto(empleado); db.Empleados.Add(empleado); List <int> idRoles = peticionDeCreacion.Roles.Select(r => r.IdRol).ToList(); List <Rol> roles = db.Roles.Where(r => idRoles.Contains(r.IdRol)).ToList(); foreach (Rol rol in roles) { empleado.Roles.Add(rol); } List <int> idAplicaciones = peticionDeCreacion.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) { empleado.Aplicaciones.Add(aplicacion); } db.SaveChanges(); //Mensaje de respuesta respuesta.Id = empleado.IdEmpleado; respuesta.Mensaje = "Se creó el empleado correctamente."; // Auditoria AuditoriaGeneral auditoria = new AuditoriaGeneral { Accion = "Agregar", NombreTabla = "Empleado", ValoresAntiguos = null, ValoresNuevos = JsonConvert.SerializeObject(peticionDeCreacion), IdUsuario = peticionDeCreacion.IdUsuarioCreacion }; this._gestorDeAuditoria.AgregarAuditoria(auditoria); } } 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 Crear(NuevoEmpleado peticionDeCreacion) { return(_gestorDeUsuarios.Crear(peticionDeCreacion)); }