using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gestor_de_Contenidos
{
    public class NivelMJOrdenacion : Nivel
    {

        private List<ItemOrdenacion> items;
        public List<ItemOrdenacion> Items
        {
            get { return items; }
            set { items = value; }
        }
        public NivelMJOrdenacion()
            : base()
        {
            items = new List<ItemOrdenacion>();
        }

        public bool anyadirItem(ItemOrdenacion item) { 
        
            // Se asegura de que no exista uno con el mismo nombre
            foreach (ItemOrdenacion it in items){
                if (it.Nombre.Equals(item.Nombre))
                    return false;

            }

            items.Add(item);
            return true;
        
        
        }


        public ItemOrdenacion buscarItem(string nombre) {

            foreach (ItemOrdenacion it in items)
            {
                if (it.Nombre.Equals(nombre))
                    return it;

            }

            return null;
        
        }

        public ItemOrdenacion buscarItem(int posicion)
        {

            foreach (ItemOrdenacion it in items)
            {
                if (it.Posicion == posicion)
                    return it;

            }

            return null;

        }

        public bool borrarItem(ItemOrdenacion item) {

            // A todos los items con una posicion superior, les quita una posicion para que no queden espacios
            foreach (ItemOrdenacion it in items) {

                if (it.Posicion > item.Posicion)
                    it.Posicion -= 1;
            }
            
            return items.Remove(item); 
        
        
        
        }
        
        
        public override bool estaImplementado()
        {
            if ((items.Count == 0) || (nombre == null) || (nombre.Equals("")) || (texto == null) || (texto.Equals("")) || tieneImagenFondo() && ((fondo == null) || (fondo.Equals(""))) || (!tieneImagenFondo() && colorFondo == 0))
                return false;
            else
                return true;
        }

    }
}
