public ActionResult DeleteConfirmed(int supplierId, int pieceId)
        {
            SupplierPiece supplierpiece = db.SupplierPieces.Where(sp => sp.pieceId == pieceId && sp.supplierId == supplierId).FirstOrDefault();

            db.SupplierPieces.Remove(supplierpiece);
            db.SaveChanges();

            //Find the piece
            var piece = db.Pieces.Find(supplierpiece.pieceId);
            //Obtain the average price
            var average = (decimal?)db.SupplierPieces.Where(sp => sp.pieceId == supplierpiece.pieceId && sp.supplierId != CarPartReconstructionId).Average(sp => (decimal?)sp.price);

            if (average != null)
            {
                //Verify if the difference between reference price and the average of the suppliers prices exceed the five percent
                var twoPercent = (decimal)(piece.piecePrice * 0.02m);
                if (Math.Abs((decimal)(piece.piecePrice - average)) > twoPercent)
                {
                    var referencePrice = piece.piecePrice;
                    piece.piecePrice = Math.Round((decimal)average, 2);

                    return(RedirectToAction("UpdatePiecePrice",
                                            new { pieceId = piece.pieceId, supplierId = supplierpiece.supplierId, averagePrice = average }));
                }
            }

            return(RedirectToAction("Index", new { SupplierId = supplierpiece.supplierId }));
        }
        //
        // GET: /SupplierPiece/Details/5

        public ActionResult Details(int supplierId, int pieceId)
        {
            SupplierPiece supplierpiece = db.SupplierPieces.Where(sp => sp.pieceId == pieceId && sp.supplierId == supplierId).FirstOrDefault();

            if (supplierpiece == null)
            {
                return(HttpNotFound());
            }
            return(View(supplierpiece));
        }
        //
        // GET: /SupplierPiece/Create

        public ActionResult Create(int supplierId)
        {
            var model = new SupplierPiece()
            {
                supplierId = supplierId
            };

            ViewBag.pieceId = new SelectList(
                db.Pieces.Where(pi => !db.SupplierPieces.Any(sp => sp.supplierId == supplierId && sp.pieceId == pi.pieceId))
                , "pieceId", "pieceName");

            ViewBag.supplierId = new SelectList(
                db.Suppliers.Where(su => su.supplierId == supplierId),
                "supplierId", "supplierName", supplierId);

            return(View(model));
        }
        //
        // GET: /SupplierPiece/Edit/5

        public ActionResult Edit(int supplierId, int pieceId)
        {
            SupplierPiece supplierpiece = db.SupplierPieces.Where(sp => sp.pieceId == pieceId && sp.supplierId == supplierId).FirstOrDefault();

            if (supplierpiece == null)
            {
                return(HttpNotFound());
            }

            ViewBag.pieceId = new SelectList(
                db.Pieces.Where(pa => pa.pieceId == pieceId || !db.SupplierPieces.Any(sp => sp.supplierId == supplierpiece.supplierId && sp.pieceId == pa.pieceId))
                , "pieceId", "pieceName", supplierpiece.pieceId);

            ViewBag.supplierId = new SelectList(
                db.Suppliers.Where(su => su.supplierId == supplierpiece.supplierId), "supplierId", "supplierName", supplierpiece.supplierId);

            return(View(supplierpiece));
        }
        public ActionResult Create(SupplierPiece supplierpiece)
        {
            if (ModelState.IsValid)
            {
                db.SupplierPieces.Add(supplierpiece);
                db.SaveChanges();

                //Find the Piece
                var piece = db.Pieces.Find(supplierpiece.pieceId);
                //Obtain the average price
                var average = (decimal?)db.SupplierPieces.Where(sp => sp.pieceId == supplierpiece.pieceId && sp.supplierId != CarPartReconstructionId).Average(sp => (decimal?)sp.price);
                if (average != null)
                {
                    //Verify if the difference between reference price and the average of the suppliers prices exceed the five percent
                    var twoPercent = (decimal)(piece.piecePrice * 0.02m);
                    if (Math.Abs((decimal)(piece.piecePrice - average)) > twoPercent)
                    {
                        var referencePrice = piece.piecePrice;
                        piece.piecePrice = Math.Round((decimal)average, 2);

                        return(RedirectToAction("UpdatePiecePrice",
                                                new { pieceId = piece.pieceId, supplierId = supplierpiece.supplierId, averagePrice = average }));
                    }
                }

                return(RedirectToAction("Index", new { supplierId = supplierpiece.supplierId }));
            }

            ViewBag.pieceId = new SelectList(
                db.Pieces.Where(pa => !db.SupplierPieces.Any(sp => sp.supplierId == supplierpiece.supplierId && sp.pieceId == pa.pieceId))
                , "pieceId", "pieceName", supplierpiece.pieceId);

            ViewBag.supplierId = new SelectList(
                db.Suppliers.Where(su => su.supplierId == supplierpiece.supplierId), "supplierId", "supplierName", supplierpiece.supplierId);

            return(View(supplierpiece));
        }