public List <int> ProcesaRegistros(int numero_registros)
        {
            List <Empleados> registros = LeeArchivo();
            int num = registros.Count;

            if (num == numero_registros)
            {
                int insertados   = 0;
                int actualizados = 0;
                int fallo        = 0;
                int existe;
                int esquema = 0;
                int estatus;

                string connString = _configuration.GetConnectionString("MyConnection"); // Read the connection string from the web.config file
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    conn.Open();
                    foreach (Empleados registro in registros)
                    {
                        SqlCommand cmd = new SqlCommand("SELECT esquema,idsap FROM empleados WHERE idsap = @idsap;", conn);
                        cmd.Parameters.AddWithValue("@idsap", registro.idsap);

                        SqlDataReader sqlReader = cmd.ExecuteReader();

                        if (sqlReader.Read())
                        {
                            existe  = 1;
                            esquema = sqlReader.GetInt32(0);
                        }
                        else
                        {
                            existe = 0;
                        }



                        sqlReader.Close();

                        LogClass log = new LogClass(_configuration);


                        if (existe == 0)
                        {
                            //Se inserta el empleado
                            if (registro.estatus == 2)
                            {
                                estatus = 2;
                            }
                            else
                            {
                                estatus = 0;
                            }

                            if (registro.ultimo_desconecte != null)
                            {
                                cmd = new SqlCommand("INSERT INTO empleados(idsap,nombre,email,area,banda,fecha_ingreso_grupo,fecha_ingreso_uen,dias_disponibles,ultimo_desconecte,idsap_padre,nombre_line,email_line,contrasena,tipo,esquema,rol,estatus) " +
                                                     "VALUES (@idsap,@nombre,@email,@area,@banda,@fecha_ingreso_grupo,@fecha_ingreso_uen,@dias_disponibles,@ultimo_desconecte,@idsap_padre,@nombre_line,@email_line,'12345','S',@esquema,@rol,@estatus)", conn);
                                cmd.Parameters.AddWithValue("@idsap", registro.idsap);
                                cmd.Parameters.AddWithValue("@nombre", registro.nombre);
                                cmd.Parameters.AddWithValue("@email", registro.email);
                                cmd.Parameters.AddWithValue("@area", registro.area);
                                cmd.Parameters.AddWithValue("@banda", registro.banda);
                                cmd.Parameters.AddWithValue("@fecha_ingreso_grupo", registro.fecha_ingreso_grupo);
                                cmd.Parameters.AddWithValue("@fecha_ingreso_uen", registro.fecha_ingreso_uen);
                                cmd.Parameters.AddWithValue("@dias_disponibles", registro.dias_disponibles);
                                cmd.Parameters.AddWithValue("@ultimo_desconecte", registro.ultimo_desconecte);
                                cmd.Parameters.AddWithValue("@idsap_padre", registro.idsap_padre);
                                cmd.Parameters.AddWithValue("@nombre_line", registro.nombre_line);
                                cmd.Parameters.AddWithValue("@email_line", registro.email_line);
                                cmd.Parameters.AddWithValue("@esquema", registro.esquema);
                                cmd.Parameters.AddWithValue("@rol", registro.rol);
                                cmd.Parameters.AddWithValue("@estatus", estatus);
                            }
                            else
                            {
                                cmd = new SqlCommand("INSERT INTO empleados(idsap,nombre,email,area,banda,fecha_ingreso_grupo,fecha_ingreso_uen,dias_disponibles,idsap_padre,nombre_line,email_line,contrasena,tipo,esquema,rol,estatus) " +
                                                     "VALUES (@idsap,@nombre,@email,@area,@banda,@fecha_ingreso_grupo,@fecha_ingreso_uen,@dias_disponibles,@idsap_padre,@nombre_line,@email_line,'12345','S',@esquema,@rol,@estatus)", conn);
                                cmd.Parameters.AddWithValue("@idsap", registro.idsap);
                                cmd.Parameters.AddWithValue("@nombre", registro.nombre);
                                cmd.Parameters.AddWithValue("@email", registro.email);
                                cmd.Parameters.AddWithValue("@area", registro.area);
                                cmd.Parameters.AddWithValue("@banda", registro.banda);
                                cmd.Parameters.AddWithValue("@fecha_ingreso_grupo", registro.fecha_ingreso_grupo);
                                cmd.Parameters.AddWithValue("@fecha_ingreso_uen", registro.fecha_ingreso_uen);
                                cmd.Parameters.AddWithValue("@dias_disponibles", registro.dias_disponibles);
                                cmd.Parameters.AddWithValue("@idsap_padre", registro.idsap_padre);
                                cmd.Parameters.AddWithValue("@nombre_line", registro.nombre_line);
                                cmd.Parameters.AddWithValue("@email_line", registro.email_line);
                                cmd.Parameters.AddWithValue("@esquema", registro.esquema);
                                cmd.Parameters.AddWithValue("@rol", registro.rol);
                                cmd.Parameters.AddWithValue("@estatus", estatus);
                            }

                            int n = cmd.ExecuteNonQuery();
                            if (n != 0)
                            {
                                DateTime now = DateTime.Now;
                                log.idsap          = registro.idsap;
                                log.log            = "Se creo el registro del empleado: " + registro.idsap + " mediante carga de empleados";
                                log.fecha_creacion = now;
                                log.idsap_creacion = 101010;
                                log.createLog();


                                //Crear registro en registros_dias con los datos iniciales

                                SqlCommand cmd2 = new SqlCommand("INSERT INTO registros_dias(idsap,periodo,registro_padre,dias,disponibles,caducidad) VALUES (@idsap,datepart(yyyy,getdate()),0,@dias,@dias,DATEADD(month, 13, Convert(date, CONCAT(datepart(yyyy, getdate()), '-', (datepart(mm, @ingreso)), '-', datepart(dd, @ingreso)))));", conn);
                                cmd2.Parameters.AddWithValue("@idsap", registro.idsap);
                                cmd2.Parameters.AddWithValue("@dias", registro.dias_disponibles);
                                cmd2.Parameters.AddWithValue("@ingreso", registro.fecha_ingreso_uen);

                                cmd2.ExecuteNonQuery();

                                insertados++;
                            }
                            else
                            {
                                fallo++;
                            }
                        }

                        else
                        {
                            var bandera = 0;
                            //Se actualiza el empleado
                            cmd = new SqlCommand("UPDATE empleados SET email=@email,area=@area,banda=@banda,fecha_ingreso_grupo=@fecha_ingreso_grupo,fecha_ingreso_uen=fecha_ingreso_uen, " +
                                                 "dias_disponibles=@dias_disponibles,idsap_padre=@idsap_padre,nombre_line=@nombre_line,email_line=@email_line,esquema=@esquema,rol=@rol " +
                                                 "WHERE idsap = @idsap", conn);
                            cmd.Parameters.AddWithValue("@idsap", registro.idsap);
                            cmd.Parameters.AddWithValue("@email", registro.email);
                            cmd.Parameters.AddWithValue("@area", registro.area);
                            cmd.Parameters.AddWithValue("@banda", registro.banda);
                            cmd.Parameters.AddWithValue("@fecha_ingreso_grupo", registro.fecha_ingreso_grupo);
                            cmd.Parameters.AddWithValue("@fecha_ingreso_uen", registro.fecha_ingreso_uen);
                            cmd.Parameters.AddWithValue("@dias_disponibles", registro.dias_disponibles);
                            cmd.Parameters.AddWithValue("@idsap_padre", registro.idsap_padre);
                            cmd.Parameters.AddWithValue("@nombre_line", registro.nombre_line);
                            cmd.Parameters.AddWithValue("@email_line", registro.email_line);
                            cmd.Parameters.AddWithValue("@esquema", registro.esquema);
                            cmd.Parameters.AddWithValue("@rol", registro.rol);

                            if (esquema != registro.esquema)//Hay un cambio de esquema
                            {
                                bandera = 1;
                            }


                            int n = cmd.ExecuteNonQuery();
                            if (n != 0)
                            {
                                if (bandera == 0)
                                {
                                    log.idsap          = registro.idsap;
                                    log.log            = "Se actualizo el empleado: " + registro.idsap + " mediante carga de empleados";
                                    log.idsap_creacion = 101010;
                                    log.createLog();
                                }
                                else
                                {
                                    log.idsap          = registro.idsap;
                                    log.log            = "Se actualizo el empleado: " + registro.idsap + " y hay un cambio de esquema, mediante carga de empleados ";
                                    log.idsap_creacion = 101010;
                                    log.createLog();
                                }


                                actualizados++;
                            }
                            else
                            {
                                fallo++;
                            }
                        }
                    }

                    //actualiza line managers

                    SqlCommand cmd5 = new SqlCommand("UPDATE empleados SET tipo = 'L' WHERE tipo = 'S' AND idsap IN(SELECT idsap_padre FROM empleados);", conn);
                    cmd5.ExecuteNonQuery();
                }
                var mensaje = new List <int> {
                    num, insertados, actualizados, fallo
                };
                return(mensaje);
            }
            else
            {
                var mensaje = new List <int> {
                    0
                };
                return(mensaje);
            }
        }