Exemplo n.º 1
0
        public IActionResult BuyZubehör([FromForm] ICollection <int> zubehörIds)
        {
            // Struktur erstellen welche von EF verstanden wird
            var ausgewählteZubehöre = new List <KundeZubehör>();

            foreach (var zubehörId in zubehörIds)
            {
                var selectedZubehör = new Zubehör
                {
                    ZubehörId     = zubehörId,
                    ZubehörName   = context.Zubehöre.FirstOrDefault(z => z.ZubehörId == zubehörId).ZubehörName,
                    ZubehörKosten = context.Zubehöre.FirstOrDefault(z => z.ZubehörId == zubehörId).ZubehörKosten
                };

                // ein Verbindungsobjekt mit der KundenId und der selektierten ProduktId erstellen
                var ausgewählterZubehör = new KundeZubehör {
                    Zubehör = selectedZubehör
                };
                ausgewählteZubehöre.Add(ausgewählterZubehör);
            }

            // Save Equipments to Session using Session Extension class
            HttpContext.Session.SetObjectAsJson("Zubehör", ausgewählteZubehöre);

            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Checkout()
        {
            var user = await userManager.FindByEmailAsync(User.Identity.Name);

            var produkt      = HttpContext.Session.GetObjectFromJson <Produkt>("Artikel");
            var zubehörListe = HttpContext.Session.GetObjectFromJson <List <KundeZubehör> >("Zubehör");

            // Struktur erstellen welche von EF verstanden wird
            var selectedProducts = new List <KundeProdukt>();
            var selectedZubehöre = new List <KundeZubehör>();

            // ein Verbindungsobjekt mit der KundenId und der selektierten ProduktId erstellen
            var selectedProduct = new KundeProdukt {
                UserId = user.Id, ProduktId = produkt.ProduktId
            };

            selectedProducts.Add(selectedProduct);

            if (zubehörListe != null)
            {
                foreach (var zubehör in zubehörListe)
                {
                    var selectedZubehör = new KundeZubehör {
                        UserId = user.Id, ZubehörId = zubehör.Zubehör.ZubehörId
                    };
                    selectedZubehöre.Add(selectedZubehör);
                }
            }
            // die vorbereitete Struktur dem Datenbankkontext übergeben (ab jetzt ist es im Speicher)
            await context.AddRangeAsync(selectedProducts);

            await context.AddRangeAsync(selectedZubehöre);

            // die Veränderungen, welche dem Datenbankkontext bekannt sind, in die DB abspeichern
            await context.SaveChangesAsync();

            // Session beenden und Daten löschen
            HttpContext.Session.Remove("Artikel");
            HttpContext.Session.Remove("Zubehör");

            // auf Checkout-Seite weiterleiten
            return(RedirectToAction("Dankeschön", "Home"));
        }