public ActionResult Edit2(int id) { Quote quote; List <QuoteOption> options; using (var qm = new QuoteManager()) { quote = qm.Single(id); options = qm.QuoteOptions(id).ToList(); ViewBag.Quote = quote; } // determine the supplier and materials available List <CompanyToSupplier> companySuppliers; using (var sm = new SupplierManager()) { companySuppliers = sm.ByCompanyID(quote.CompanyID.GetValueOrDefault()).ToList(); } List <Product> products; using (var mm = new MaterialsManager()) { List <Material> allMaterials = new List <Material>(); foreach (var companyToSupplier in companySuppliers) { allMaterials.AddRange(mm.BySupplier(companyToSupplier.SupplierID)); } ViewBag.AvailableMaterials = allMaterials; products = mm.ActiveProducts(quote.CompanyID.GetValueOrDefault()).ToList(); var productLines = mm.ActiveProductLines().ToList(); ViewBag.PartsOfHouse = productLines.AsEnumerable(); ViewBag.ProductToProductLine = mm.AllProductToProductLine().ToList(); ViewBag.MaterialToProducts = mm.AllMaterialToProducts().ToList(); } ViewBag.Products = products; return(View("Edit")); }