chore: similar products [wip]
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
surtur 2021-02-14 22:50:52 +01:00
parent 7b536ba8f5
commit d69b8c7cc6
Signed by: wanderer
GPG Key ID: 19CE1EC1D9E0486D
2 changed files with 35 additions and 12 deletions

View File

@ -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);
}

View File

@ -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>