public List<TallaSeccion> definir(List<TallaCantidad> lista, int maximoRepeticionesDeCuerpoPermitido)
        {

            List<TallaSeccion> listaSeccion = new List<TallaSeccion>();
            var entidadDesdeListaRedifinida = Util.getListaAgrupaPorCantidad(lista)[0];
            var listaOrdenada = Util.ordenarDescendente(lista);


            int contadorSeccion = 1;
            int cantidadMaximaDelaTallaCantidadDos = (int)entidadDesdeListaRedifinida.cantidad;
            int contadorCuerpos = 0;

            TallaCantidad paraBanderaTallaCantidad = listaOrdenada.First();

            string banderaTallaCantidad = "" + paraBanderaTallaCantidad.tallaCuello + paraBanderaTallaCantidad.tallaManga;

            foreach (var tallaCantidad in listaOrdenada)
            {

                if (cantidadMaximaDelaTallaCantidadDos != tallaCantidad.cantidad)
                {
                    contadorCuerpos = 0;
                    contadorSeccion = contadorSeccion + 1;
                    cantidadMaximaDelaTallaCantidadDos = tallaCantidad.cantidad;

                }

                string valorACompararConBandera = "" + tallaCantidad.tallaCuello + tallaCantidad.tallaManga;

                if (banderaTallaCantidad != valorACompararConBandera)
                {
                    banderaTallaCantidad = valorACompararConBandera;
                    contadorCuerpos = 0;

                }


                if (contadorCuerpos < maximoRepeticionesDeCuerpoPermitido)
                {

                    TallaSeccion seccion = new TallaSeccion();
                    seccion.tallCuello = tallaCantidad.tallaCuello;
                    seccion.tallaManga = tallaCantidad.tallaManga;
                    seccion.tallaLetra = tallaCantidad.tallaLetra;
                    seccion.cantidad = tallaCantidad.cantidad;
                    seccion.seccion = contadorSeccion;
                    listaSeccion.Add(seccion);
                    contadorCuerpos = contadorCuerpos + 1;
                }
                else
                {
                    contadorSeccion = contadorSeccion + 1;

                    TallaSeccion seccion = new TallaSeccion();
                    seccion.tallCuello = tallaCantidad.tallaCuello;
                    seccion.tallaManga = tallaCantidad.tallaManga;
                    seccion.tallaLetra = tallaCantidad.tallaLetra;
                    seccion.cantidad = tallaCantidad.cantidad;
                    seccion.seccion = contadorSeccion;
                    listaSeccion.Add(seccion);

                    contadorCuerpos = 1;
                }


            }

            return listaSeccion;
        }
        private void sacarCapas(List<NumeroBultos> listaNumerosDeBultos, string listaCapas, int numeroBulto, string codigoCorte, TallaSeccion cantidad, int capa, int cantidadActualCapa)
        {
            var ArrayCapas = listaCapas.Split(',');
            string letraDeCapa = "";

          
            letraDeCapa = ArrayCapas[capa];

           

            if (cantidadActualCapa <= MaximoSplitPorCapa)
            {

                var hojaBulto = new NumeroBultos();
                hojaBulto.numeroBulto = numeroBulto;
                hojaBulto.codigoCorte = codigoCorte;
                hojaBulto.numeroSeccion = cantidad.seccion;
                hojaBulto.capa = letraDeCapa;
                hojaBulto.tallCuello = cantidad.tallCuello;
                hojaBulto.tallaManga = cantidad.tallaManga;
                hojaBulto.tallaCompleta = "(" + cantidad.tallCuello + "-" + cantidad.tallaManga + ")" + cantidad.tallaLetra;
                hojaBulto.cantidadPorCapa = cantidadActualCapa;
                listaNumerosDeBultos.Add(hojaBulto);
            }
            else
            {
                int cantidaSeguienteCapa = cantidadActualCapa - MaximoSplitPorCapa;

                var hojaBulto = new NumeroBultos();
                hojaBulto.numeroBulto = numeroBulto;
                hojaBulto.codigoCorte = codigoCorte;
                hojaBulto.numeroSeccion = cantidad.seccion;
                hojaBulto.capa = letraDeCapa;
                hojaBulto.tallCuello = cantidad.tallCuello;
                hojaBulto.tallaManga = cantidad.tallaManga;
                hojaBulto.tallaCompleta = "(" + cantidad.tallCuello + "-" + cantidad.tallaManga + ")" + cantidad.tallaLetra;
                hojaBulto.cantidadPorCapa = MaximoSplitPorCapa;

                listaNumerosDeBultos.Add(hojaBulto);
                int siguienteCapa = capa + 1;

                sacarCapas(listaNumerosDeBultos, listaCapas, numeroBulto, codigoCorte, cantidad, siguienteCapa, cantidaSeguienteCapa);

            }
        }