/// <summary>
        /// Genereaza o lista de locuri pentru o anumita cursa
        /// </summary>
        /// <param name="id">Id-ul cursei</param>
        /// <returns>O lista de locuri</returns>
        public static IEnumerable <Loc> GenereazaLocuriPentruCursa(int id)
        {
            //genereaza lista cu toate 18 locuri libere
            var listaLocuri = new List <Loc>();

            for (var i = 1; i <= 18; i++)
            {
                listaLocuri.Add(new Loc(i));
            }

            //ia lista cu rezervari din db
            var listaRezervari = ServiceRezervari.FindAll();

            //ocupa locurile incepand cu primul
            var locCurent = 0;

            listaRezervari.ToList().ForEach(x =>
            {
                //daca exista rezervare, cauta clientul si asigneaza locul
                if (x.IdCursa == id)
                {
                    var clientCurent      = ServiceClienti.FindClient(x.IdClient);
                    var nrLocuriDeAdaugat = x.NrLocuri;
                    while (nrLocuriDeAdaugat > 0)
                    {
                        listaLocuri[locCurent].Nume    = clientCurent.Nume;
                        listaLocuri[locCurent].Prenume = clientCurent.Prenume;
                        locCurent++;
                        nrLocuriDeAdaugat--;
                    }
                }
            });

            return(listaLocuri);
        }
        /// <summary>
        /// Functie care adauga o noua rezervare
        /// </summary>
        /// <param name="cursaCurenta">Cursa la care se adauga rezervarea</param>
        /// <param name="numeAdaugare">Nume client</param>
        /// <param name="prenumeAdaugare">Prenume client</param>
        /// <param name="numarLocuriAdaugare">Numar locuri</param>
        internal static void AdaugaRezervare(Cursa cursaCurenta, string numeAdaugare, string prenumeAdaugare, int numarLocuriAdaugare)
        {
            //prima data cautam clientul in db dupa nume si prenume, daca nu exista adaugam unul nou
            var client = ServiceClienti.FindClinetDupaDetalii(numeAdaugare, prenumeAdaugare);

            if (client == null)
            {
                var clientDeAdaugat = new Client(DbRepoUtils.getMaxId(ServiceClienti.FindAllClienti()), numeAdaugare, prenumeAdaugare);
                ServiceClienti.addClient(clientDeAdaugat);
                client = clientDeAdaugat;
            }

            //verificam ca cursa sa aibe un numar de locuri mai mare sau egal e cat cel rezervat
            if (cursaCurenta.NrLocuriDisponibile <= numarLocuriAdaugare)
            {
                throw new ServiceException("Nu exista suficiete locuri disponibile!");
            }

            //modificam cursa la noul numarde locuri
            ServiceCursa.UpdateCursa(new Cursa(cursaCurenta.Id, cursaCurenta.Destinatie, cursaCurenta.DataPlecare, cursaCurenta.NrLocuriDisponibile - numarLocuriAdaugare, cursaCurenta.LocPlecare));

            //aduagam rezervarea
            var idRez = DbRepoUtils.getMaxId(ServiceRezervari.FindAll());
            var rezervareDeAdaugat = new Rezervare(idRez, client.Id, cursaCurenta.Id, numarLocuriAdaugare);

            ServiceRezervari.AddRezervare(rezervareDeAdaugat);
        }