chore: similar products [wip]
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
7b536ba8f5
commit
d69b8c7cc6
|
@ -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<Similar> s = await dbctx.Similar.Where(p_item => p_item.prod_id == id).ToListAsync();
|
||||
IList<Product> 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);
|
||||
}
|
||||
|
|
|
@ -47,14 +47,18 @@
|
|||
<label>similar products</label>
|
||||
</div>
|
||||
@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){
|
||||
<label class="form-check-label checkbox-inline">@products.ElementAt(i).Name</label>
|
||||
<input class="form-check-input" type="checkbox" @{if(similar.Count != 0 && (similar.Select(s => s.id == products.ElementAt(i).id) != null)){@Html.Raw("checked")};}>
|
||||
@if(similar[i].Selected){
|
||||
<input asp-for="@Model.Similar[i].Selected" type="checkbox" checked>
|
||||
<input asp-for="@Model.Similar[i].id" type="hidden">
|
||||
} else {
|
||||
<input asp-for="@Model.Similar[i].Selected" type="checkbox">
|
||||
<input asp-for="@Model.Similar[i].id" type="hidden">
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
|
Reference in New Issue