/// <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);
        }
        public static Cursa CautaCursaDupaDetalii(DateTime dataCautare, Destinatie destinatieCautare)
        {
            var listaCursa = ServiceCursa.FindAllCurse();
            var cursa      = default(Cursa);

            listaCursa.ToList().ForEach(x =>
            {
                if (x.IdDestinatie == destinatieCautare.Id && x.DataPlecare.CompareTo(dataCautare) == 0)
                {
                    cursa = x;
                }
            });
            return(cursa);
        }
        /// <summary>
        /// Functie care returneaza toate cursele pentru view
        /// Pune destinatia potrivita ca sa poata fie afisata de view
        /// </summary>
        /// <returns>Lista cu cursele de afisat pentru view</returns>
        public static IEnumerable <Cursa> FindAllCurseForView()
        {
            var listaCurse      = ServiceCursa.FindAllCurse();
            var listaDestinatii = ServiceDestinatie.FindAllDestinatii();

            listaCurse.ToList().ForEach(x =>
            {
                listaDestinatii.ToList().ForEach(y =>
                {
                    if (x.IdDestinatie == y.Id)
                    {
                        x.Destinatie = y;
                    }
                });
            });


            return(listaCurse);
        }