diff --git a/Areas/Admin/Controllers/ProductController.cs b/Areas/Admin/Controllers/ProductController.cs index c2e176d..6771209 100644 --- a/Areas/Admin/Controllers/ProductController.cs +++ b/Areas/Admin/Controllers/ProductController.cs @@ -64,6 +64,23 @@ namespace pwt_0x01_ng.Areas.Admin.Controllers Product item = dbctx.Product.Where(p_item => p_item.id == id).FirstOrDefault(); if (item != null) { + IList s = await dbctx.Similar.Where(p_item => p_item.prod_id == id).ToListAsync(); + IList similar = product.Products; + foreach (var s_item in s) + { + var prodpls = await dbctx.Product.Where(p_item => p_item.id == s_item.prod_id).FirstOrDefaultAsync(); + if(prodpls != null){ + for (int i = 0; i < similar.Count; i++) + { + if(similar[i].id == prodpls.id){ + similar[i].Selected = true; + } + } + } + } + if(similar != null){ + item.Similar = similar; + } ViewData["ImageSrc"] = new SelectList(dbctx.Product, "ImageSrc", item.ImageSrc); return View(item); } @@ -96,20 +113,22 @@ namespace pwt_0x01_ng.Areas.Admin.Controllers if(p != null){ foreach (var prod in p) { - Similar s = dbctx.Similar.Where(p_item => p_item.prod_id == item.id && p_item.similar_prod_id != prod.id).FirstOrDefault(); - System.Console.WriteLine("s.prod_id: " + s.prod_id + "s.similar_prod_id:" + s.similar_prod_id); - var res = dbctx.Similar.Remove(s); - Similar nu_s = new Similar(); - nu_s.prod_id = item.id; - nu_s.similar_prod_id = prod.id; - System.Console.WriteLine("nu_s.prod_id: " + nu_s.prod_id + "nu_s.similar_prod_id:" + nu_s.similar_prod_id); - var nu_res = dbctx.Similar.Add(nu_s); + if(prod.Selected){ + Similar s = new Similar(); + s.prod_id = item.id; + s.similar_prod_id = prod.id; + var res = dbctx.Similar.Add(s); + } else { + Similar s = dbctx.Similar.Where(p_item => p_item.prod_id == item.id && p_item.similar_prod_id != prod.id).FirstOrDefault(); + var res = dbctx.Similar.Remove(s); + } } } await dbctx.SaveChangesAsync(); return RedirectToAction(nameof(Select)); } + var errors = ModelState.Values.SelectMany(v => v.Errors); ViewData["Message"] = "error editing Product"; return View(item); } diff --git a/Areas/Admin/Views/Product/edit-create_part.cshtml b/Areas/Admin/Views/Product/edit-create_part.cshtml index 74f2a63..856c774 100644 --- a/Areas/Admin/Views/Product/edit-create_part.cshtml +++ b/Areas/Admin/Views/Product/edit-create_part.cshtml @@ -47,14 +47,18 @@ @if(@Model.Similar != null){ - foreach (Product p in @Model.Similar){ - similar.Add(products.Where(pp => pp.id == p.id).FirstOrDefault()); - } + similar = @Model.Similar; } @for(int i = 0; i < products.Count; i++){ @if(products.ElementAt(i).id != @Model.id){ - s.id == products.ElementAt(i).id) != null)){@Html.Raw("checked")};}> + @if(similar[i].Selected){ + + + } else { + + + } } }