public ActionResult SignUp(int artId) { IEnumerable <SelectListItem> selectList = from c in _context.Customer select new SelectListItem { Text = c.CustomerFirstName + " " + c.CustomerLastName, Value = c.IdCustomer.ToString() }; CurrentCustomersViewModel artWorkList = new CurrentCustomersViewModel { CustList = selectList, artId = artId }; return(View(artWorkList)); }
public ActionResult SignUp(CurrentCustomersViewModel ccvm) { var artId = ccvm.artId; // Get access to the piece sold var PieceSold = (from ap in _context.ArtPiece join aw in _context.ArtWork on ap.IdArtWork equals aw.IdArtWork where ap.IdArtPiece == ccvm.artId select new { artID = ap.IdArtPiece, Title = aw.ArtWorkTitle }).Single(); // Get access to the customer and agent involved in the sale var custAndAgentID = (from c in _context.Customer join ag in _context.Agent on c.IdAgent equals ag.IdAgent where c.IdCustomer == ccvm.SelectedCustID select new CustAndAgentViewModel { cust = c.IdCustomer, agent = ag.IdAgent, PaymentMethod = "Visa", ShippingAddress = c.CustomerAddress, PieceSold = PieceSold.Title }).Single(); // Create a new Invoice Invoice _invoice = new Invoice { IdCustomer = ccvm.SelectedCustID, IdAgent = custAndAgentID.agent, PaymentMethod = custAndAgentID.PaymentMethod, ShippingAddress = custAndAgentID.ShippingAddress, PieceSold = custAndAgentID.PieceSold }; _context.Invoice.Add(_invoice); _context.SaveChanges(); // Get access to the invoice you just created to connect it to the InvoiceArtPiece and InvoiceLineItem Tables var InvoiceId = (from i in _context.Invoice orderby i.IdInvoice select new InvoiceIdViewModel { ID = i.IdInvoice }).ToList().Last(); InvoiceArtPiece iap = new InvoiceArtPiece { IdInvoice = InvoiceId.ID, IdArtPiece = ccvm.artId }; _context.InvoiceArtPiece.Add(iap); _context.SaveChanges(); // Access the ArtPiece to update that it has been sold var _ap = (from ap in _context.ArtPiece where ap.IdArtPiece == ccvm.artId select new ArtPieceUpdateViewModel { IdArtPiece = ap.IdArtPiece, ArtPieceSold = true, ArtPieceDateCreated = ap.ArtPieceDateCreated, ArtPieceEditionNum = ap.ArtPieceEditionNum, ArtPieceImage = ap.ArtPieceImage, ArtPieceLocation = ap.ArtPieceLocation, ArtPiecePrice = ap.ArtPiecePrice, IdArtWork = ap.IdArtWork }).Single(); // Create a new local ArtPiece to send and update the database table ArtPiece AP = new ArtPiece { ArtPieceDateCreated = _ap.ArtPieceDateCreated, ArtPieceEditionNum = _ap.ArtPieceEditionNum, ArtPieceImage = _ap.ArtPieceImage, ArtPieceLocation = _ap.ArtPieceLocation, ArtPiecePrice = _ap.ArtPiecePrice, ArtPieceSold = _ap.ArtPieceSold, IdArtPiece = _ap.IdArtPiece, IdArtWork = _ap.IdArtWork }; //_context.Entry(AP).State = EntityState.Modified; _context.ArtPiece.Attach(AP); _context.Entry(AP).State = EntityState.Modified; _context.SaveChanges(); return(RedirectToAction("Inventory")); }