Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 public RespuestaBD Crear(NuevoEmpleado peticionDeCreacion)
 {
     return(_gestorDeUsuarios.Crear(peticionDeCreacion));
 }