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

namespace PortoTuristico
{
    internal class Porto
    {
        private List<Barca> elencoBarche;
        public Porto()
        {
            elencoBarche = new List<Barca>();
        }
        public void Aggiungi(string nome, string nazionalita, int pesoMassimo)
        {
            try
            {
                elencoBarche.Add(new BarcaRemi(nome, nazionalita, pesoMassimo));
            }
            catch (Exception)
            {
                throw;
            }
           
        }
        public void Aggiungi(string motore, int potenzaMotore, int pesoMotore, string nome, string nazionalita, int pesoMassimo)
        {
            try
            {
                elencoBarche.Add(new BarcaMotore(motore, potenzaMotore, pesoMotore, nome, nazionalita, pesoMassimo));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Aggiungi(int numeroVele, int lungheza, string nome, string nazionalita, int pesoMassimo)
        {
            try
            {
                elencoBarche.Add(new BarcaVela(numeroVele, lungheza, nome, nazionalita, pesoMassimo));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool RimuoviBarca(int codice)
        {
            if(elencoBarche.Find(x => x.Codice.Equals(codice))!=null)
                return true;
            else return false;
            
        }
        public double IcassoGiornaliero()
        {
            double ris = 0;
            foreach (Barca x in elencoBarche)
            {
                ris+=x.CostoGiornaliero();
            }
            return ris;
        }

        public string InfoImbarcazioni()
        {
            string s = string.Empty;
            foreach (Barca x in elencoBarche)
            {
                s += x.Info()+"\n";
            }
            return s;
        }
    }
}
