public ActionResult ZlozZamowienie() { if (SprawdzPolecajacego()) { return RedirectToAction("Wyszukane", "Oferta"); } SzczegolyOfertyViewModel skomponowanaOferta = (SzczegolyOfertyViewModel) TempData["Szczegoly"]; TempData.Keep("Szczegoly"); TempData.Keep("wybranyTransportTemp"); var wycieczkiTemp = new List<Wycieczka_fakultatywna>(); var ubezpieczeniaTemp = new List<Ubezpieczenia>(); Klient zalogowanyKlient = db.Klient.SingleOrDefault(x => x.Nazwa_uzytkownika == this.User.Identity.Name); ObliczRabat(ref skomponowanaOferta, ref zalogowanyKlient); if (SprawdzCzyIstnieje(skomponowanaOferta.IdWycieczek)) { wycieczkiTemp.AddRange(skomponowanaOferta.IdWycieczek.Select(id => db.Wycieczka_fakultatywna.Find(id))); } if (SprawdzCzyIstnieje(skomponowanaOferta.IdUbezpieczen)) { ubezpieczeniaTemp.AddRange(skomponowanaOferta.IdUbezpieczen.Select(id => db.Ubezpieczenia.Find(id))); } if (ModelState.IsValid) { ZamowienieViewModel podsumowanie = new ZamowienieViewModel() { Id_oferty = skomponowanaOferta.Id_oferty, Nazwa_oferty = skomponowanaOferta.Nazwa_oferty, iloscDni = skomponowanaOferta.iloscDni, Data_od = skomponowanaOferta.Data_od, Data_do = skomponowanaOferta.Data_do, Cena_za_miejsce = skomponowanaOferta.Cena_za_miejsce, IloscMiejsc = skomponowanaOferta.IloscMiejsc, KosztCalkowity = skomponowanaOferta.KosztCalkowity, Zakwaterowanie = db.Zakwaterowanie.Find(skomponowanaOferta.SelectedKwaterunek), Wycieczki = wycieczkiTemp, Ubezpieczenia = ubezpieczeniaTemp, Rabat = zalogowanyKlient.Rabat, TypTransportu = skomponowanaOferta.TypTransportu }; return View(podsumowanie); } return View(); }
public ActionResult ZlozZamowienie(ZamowienieViewModel przychodzace) { Klient zalogowanyKlient = db.Klient.SingleOrDefault(x => x.Nazwa_uzytkownika == this.User.Identity.Name); if (CzyKupilesJuzTaOferte(zalogowanyKlient.Id_osoby, przychodzace.Id_oferty)) { return View("ZamowilesJuzTaOferte"); } Zamowienie zlozoneZamowienie = new Zamowienie() { Id_zamowienia = Guid.NewGuid().ToString(), Liczba_miejsc = przychodzace.IloscMiejsc, Id_oferty = przychodzace.Id_oferty, Id_osoby = zalogowanyKlient.Id_osoby, Id_regionu = przychodzace.Zakwaterowanie.Id_regionu }; ZlozoneZamowienie detaleZamowienie = new ZlozoneZamowienie() { Id_ZlozonegoZamowienia = zlozoneZamowienie.Id_zamowienia, Id_oferty = przychodzace.Id_oferty, Id_osoby = zalogowanyKlient.Id_osoby, Liczba_miejsc = przychodzace.IloscMiejsc, Cena_za_miejsce = przychodzace.Cena_za_miejsce, Rabat = (int) przychodzace.Rabat, Koszt_całkowity = przychodzace.KosztCalkowity, Id_zakwaterowania = przychodzace.Zakwaterowanie.Id_kwaterunku, Typ_transportu = przychodzace.TypTransportu, DataZlozenia = DateTime.Now }; if (przychodzace.Ubezpieczenia != null) { foreach (Ubezpieczenia ubezpieczenieWzamowieniu in przychodzace.Ubezpieczenia) { Ubezpieczenia ubezpieczenie = db.Ubezpieczenia.Find(ubezpieczenieWzamowieniu.Id_ubezpieczenia); // ubezpieczenia do wyswietlenia z klasy ubezpieczenia WybraneUbezpieczenie wybraneUbezpieczenie = new WybraneUbezpieczenie { Id_ubezpieczenia = ubezpieczenie.Id_ubezpieczenia }; ubezpieczenie.Zamowienie.Add(zlozoneZamowienie); detaleZamowienie.WybraneUbezpieczenie.Add(wybraneUbezpieczenie); } } if (przychodzace.Wycieczki != null) { foreach (var wycieczkiWzamowieniu in przychodzace.Wycieczki) { Wycieczka_fakultatywna wycieczka = db.Wycieczka_fakultatywna.Find(wycieczkiWzamowieniu.Id_wycieczki); Wybrana_wycieczka wybranaWycieczka = new Wybrana_wycieczka() { Id_wycieczki = wycieczka.Id_wycieczki }; detaleZamowienie.Wybrana_wycieczka.Add(wybranaWycieczka); } } db.ZlozoneZamowienie.Add(detaleZamowienie); db.Zamowienie.Add(zlozoneZamowienie); db.SaveChanges(); return View("Pomyslnie"); }