// GET: Products public ActionResult Index(int? id, int? complianceformID, int? compid) { var viewModel = new ProductIndexData(); if (compid != null) { int? updprodid = id; int? upcompid = compid; AddComplianceProduct(updprodid, upcompid, 1); } viewModel.Products = db.Products .Include(i => i.ComplianceForms.Select(c => c.ComplianceCategory)) .Where(i=>i.ProductListingID==id.Value) .OrderBy(i => i.ProductName); if (id != null) { ViewBag.ProductID = id.Value; viewModel.ComplianceForms = viewModel.Products.Where( i => i.ProductListingID == id.Value).Single().ComplianceForms; } if (complianceformID != null) { ViewBag.complianceformID = complianceformID.Value; // Lazy loading //viewModel.Enrollments = viewModel.Courses.Where( // x => x.CourseID == courseID).Single().Enrollments; // Explicit loading var selectedcomplianceform = viewModel.ComplianceForms.Where(x => x.ComplianceFormID == complianceformID).Single(); db.Entry(selectedcomplianceform).Collection(x => x.Compliances).Load(); foreach (Compliance compliance in selectedcomplianceform.Compliances) { db.Entry(compliance).Reference(x => x.ComplianceItem).Load(); } viewModel.Compliances = selectedcomplianceform.Compliances; } var productcomp = (from p in db.ProductCompliance where p.ProductListingID == id select p); ViewBag.productcp = productcomp.ToList(); var proditems = from a in db.ProductCompliance select a; ViewBag.ProdItems = new SelectList(proditems, "ProductListingID", "ProductName"); return View(viewModel); }
// GET: Products public ActionResult Index(int? id, int? complianceformID, int? compid, bool? enditem, int? compidsub) { var viewModel = new ProductIndexData(); if (compid != null) { int? updprodid = id; int? upcompid = compid; AddComplianceProduct(updprodid, upcompid, 1,enditem); } viewModel.Products = db.Products .Include(i => i.ComplianceForms.Select(c => c.ComplianceCategory)) .Where(i=>i.ProductListingID==id.Value) .OrderBy(i => i.ProductName); if (id != null) { int idval = 0; idval = id.GetValueOrDefault(); if (CheckRelProductComplianceForms(idval) > 0) { ViewBag.ProductID = id.Value; viewModel.ComplianceForms = viewModel.Products.Where( i => i.ProductListingID == id.Value).FirstOrDefault().ComplianceForms; } else { try { ViewBag.ProductID = id.Value; viewModel.ComplianceForms = viewModel.Products.Where(i => i.ProductListingID == id.Value).FirstOrDefault().ComplianceForms; } catch(Exception ex) { } } } if (complianceformID != null) { ViewBag.complianceformID = complianceformID.Value; // Lazy loading //viewModel.Enrollments = viewModel.Courses.Where( // x => x.CourseID == courseID).Single().Enrollments; // Explicit loading var selectedcomplianceform = viewModel.ComplianceForms.Where(x => x.ComplianceFormID == complianceformID).Single(); db.Entry(selectedcomplianceform).Collection(x => x.Compliances).Load(); foreach (Compliance compliance in selectedcomplianceform.Compliances) { db.Entry(compliance).Reference(x => x.ComplianceItem).Load(); } viewModel.Compliances = selectedcomplianceform.Compliances.OrderBy(x=>x.Order); } //Product compliance items var productcomp = (from p in db.ProductCompliance where p.ProductListingID == id select p); ViewBag.productcp = productcomp.ToList(); //Section to handle subordinate items var productSubItem = from a in db.ComplianceItems join s in db.ComplianceItemSubItems on a.ComplianceItemsID equals s.SubItemTo // join p in db.ProductCompliance on s.SubItemTo equals p.ComplianceItemsID //select new SubItemsViewModel { SubItemTo = s.SubItemTo, ItemName = a.ItemName, ComplianceItemsID = s.ComplianceItemID, Checked = p.Checked }; select new SubItemsViewModel { SubItemTo = s.SubItemTo, ItemName = a.ItemName, ComplianceItemsID = s.ComplianceItemID }; if (productSubItem.Count()>1) { ViewBag.productSubItem = productSubItem.ToList(); } //check if subordinate item is in the product compliances //will end up here as another item var subproductcomp = (from p in db.ProductCompliance join s in db.ComplianceItemSubItems on p.ComplianceItemsID equals s.SubItemTo //where p.ProductListingID == id select new SubItemsProductCompliance { ComplianceItemsID = s.ComplianceItemID, SubItemTo = s.SubItemTo, ProductListingID = p.ProductListingID, Checked = p.Checked }); ViewBag.productcpsub = subproductcomp.ToList(); //end section to handle subordinate itesm var proditems = from a in db.ProductCompliance select a; ViewBag.ProdItems = new SelectList(proditems, "ProductListingID", "ProductName"); return View(viewModel); }