Beispiel #1
0
        public void AddItemToCart(int id, AddCartLineDto addCartLineDto)
        {
            // Transfer danych z jsona do obiektu
            // Robimy to w taki sposob aby zapobiec over-postingu
            var cartline = new CartLine
            {
                CartId = id,
                BookId = addCartLineDto.BookId,
                Count = addCartLineDto.Count
            };

            // odczytaj cene ksiazki
            var bookprice = (from d in db.Books
                             where d.BookId.Equals(cartline.BookId)
                             select d.Price).First<decimal>();

            // cena*ilosc
            bookprice *= cartline.Count;

            // wpisanie ostatecznej ceny do CartLine
            // Zabezpieczenie przed modyfikowaniem POSTa za pomoca zewnetrznych programow typu fiddler
            cartline.Cost = bookprice;

            db.CartLines.Add(cartline);
            // potrzebny save aby moc przejsc dalej
            SaveChanges();

            //aktualizacja ogolna Cart
            UpdateCartCost(id);
            SaveChanges();
        }
        public IHttpActionResult PostItemToCart(int id, AddCartLineDto addCartLineDto)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            repo.AddItemToCart(id, addCartLineDto);

            return Ok();
        }