Beispiel #1
0
        public static List <Bilete> Afiseaza_posibile_bilete(List <Tuple <int, int, int, TimeSpan> > statii, string data)
        {
            statii.Reverse();
            List <Bilete> results = new List <Bilete>();
            int           i       = 0;
            int           sc1     = 0;
            int           sc2     = 0;

            while (i < statii.Count - 1)
            {
                if (statii.ElementAt(i).Item3 != statii.ElementAt(i + 1).Item3&&i != 0)
                {
                    sc2 = i;
                    //fac un posibil bilet
                    var bilet1 = new Bilete
                    {
                        ID_Avion      = statii.ElementAt(sc2).Item3,
                        Data          = Convert.ToDateTime(data),
                        Cod           = Utility.GetRandomNumber(),
                        Destinatie_1  = Utility.GetStatieName(statii.ElementAt(sc1).Item1),
                        Destinatie_2  = Utility.GetStatieName(statii.ElementAt(sc2).Item1),
                        Ora_Decolare  = statii.ElementAt(sc1).Item4,
                        Ora_Aterizare = statii.ElementAt(sc2).Item4,
                        ID_Calator    = 0
                    };
                    results.Add(bilet1);
                    sc1 = sc2;
                }
                if (i == statii.Count - 2)
                {
                    //fac bilet
                    //statii.ElementAt(sc1+1).Item3==statii.ElementAt(i+1).Item3
                    var bilet1 = new Bilete
                    {
                        ID_Avion      = statii.ElementAt(i + 1).Item3,
                        Data          = Convert.ToDateTime(data),
                        Cod           = Utility.GetRandomNumber(),
                        Destinatie_1  = Utility.GetStatieName(statii.ElementAt(sc1).Item1),
                        Destinatie_2  = Utility.GetStatieName(statii.ElementAt(i + 1).Item1),
                        Ora_Decolare  = statii.ElementAt(sc1).Item4,
                        Ora_Aterizare = statii.ElementAt(i + 1).Item4,
                        ID_Calator    = 0
                    };
                    results.Add(bilet1);
                }
                i++;
            }
            statii.Reverse();
            return(results);
        }
Beispiel #2
0
        public static void Adauga_Bilete(List <Tuple <int, int, int, TimeSpan> > statii, string data, string NumeClient, string Prenume, string CNPclient)
        {
            statii.Reverse();
            var context = new AvioaneDataContext();
            int OkBilet = 1;

            for (int j = 0; j < statii.Count; j++)
            {
                if (Verif_data_reciclare(data, statii.ElementAt(j).Item3) == 0)
                {
                    OkBilet = 0;
                    break;
                }
            }

            if (OkBilet == 1)
            {
                //fac un client nou cu numele si prenumele
                //daca acesta nu si-a cumparad deja bilete pentru o a alta data
                var Cnp_De_Cautat = from c in context.Calatoris
                                    where c.CNP.Equals(CNPclient)
                                    select c.CNP;
                if (Cnp_De_Cautat.ToList().Count == 0)
                {
                    var client1 = new Calatori
                    {
                        Nume    = NumeClient,
                        Prenume = Prenume,
                        CNP     = CNPclient
                    };
                    context.Calatoris.InsertOnSubmit(client1);
                    context.SubmitChanges();
                }
                var IDulCalatorIntrodus = from c in context.Calatoris
                                          where c.CNP.Equals(CNPclient)
                                          select c.ID_Calator;
                using (var scope = new TransactionScope())
                {
                    try
                    {
                        int i   = 0;
                        int sc1 = 0;
                        int sc2 = 0;
                        while (i < statii.Count - 1)
                        {
                            if (statii.ElementAt(i).Item3 != statii.ElementAt(i + 1).Item3&&i != 0)
                            {
                                sc2 = i;
                                //fac bilet
                                var bilet1 = new Bilete
                                {
                                    ID_Avion      = statii.ElementAt(sc2).Item3,
                                    Data          = Convert.ToDateTime(data),
                                    Cod           = Utility.GetRandomNumber(),
                                    Destinatie_1  = Utility.GetStatieName(statii.ElementAt(sc1).Item1),
                                    Destinatie_2  = Utility.GetStatieName(statii.ElementAt(sc2).Item1),
                                    Ora_Decolare  = statii.ElementAt(sc1).Item4,
                                    Ora_Aterizare = statii.ElementAt(sc2).Item4,
                                    ID_Calator    = Convert.ToInt32(IDulCalatorIntrodus.First())
                                };
                                context.Biletes.InsertOnSubmit(bilet1);
                                sc1 = sc2;
                            }

                            if (i == statii.Count - 2)
                            { //fac bilet
                                var bilet1 = new Bilete
                                {
                                    ID_Avion      = statii.ElementAt(i + 1).Item3,
                                    Data          = Convert.ToDateTime(data),
                                    Cod           = Utility.GetRandomNumber(),
                                    Destinatie_1  = Utility.GetStatieName(statii.ElementAt(sc1).Item1),
                                    Destinatie_2  = Utility.GetStatieName(statii.ElementAt(i + 1).Item1),
                                    Ora_Decolare  = statii.ElementAt(sc1).Item4,
                                    Ora_Aterizare = statii.ElementAt(i + 1).Item4,
                                    ID_Calator    = Convert.ToInt32(IDulCalatorIntrodus.First())
                                };
                                context.Biletes.InsertOnSubmit(bilet1);
                                //context.SubmitChanges();
                            }
                            i++;
                        }
                        context.SubmitChanges();
                        scope.Complete();
                    }
                    catch
                    {
                        scope.Dispose();
                        var client = from c in context.Calatoris
                                     where c.CNP.Equals(CNPclient)
                                     select c;
                        context.Calatoris.DeleteOnSubmit(client.First());
                        context.SubmitChanges();
                    }
                }
            }

            statii.Reverse();
            //daca a m ok la bilete fac un client cu numele si prenumele
            //asignez la bilete clientul acela
            //dau submit
            // altfel dau rollbak
        }