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); }
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 }