deprecate Product in favour of SimilarProduct
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
surtur 2021-02-16 16:30:45 +01:00
parent 7db10ab6c0
commit 0dfead8388
Signed by: wanderer
GPG Key ID: 19CE1EC1D9E0486D
5 changed files with 48 additions and 21 deletions

View File

@ -65,7 +65,13 @@ namespace pwt_0x01_ng.Areas.Admin.Controllers
if (item != null)
{
IList<Similar> s = await dbctx.Similar.Where(p_item => p_item.prod_id == id).ToListAsync();
IList<Product> similar = product.Products;
IList<SimilarProduct> similar = new List<SimilarProduct>();
foreach (var prod in product.Products) {
SimilarProduct sp = new SimilarProduct();
sp.id = prod.id;
sp.Selected = prod.Selected;
similar.Add(sp);
}
foreach (var s_item in s)
{
var prodpls = await dbctx.Product.Where(p_item => p_item.id == s_item.prod_id).FirstOrDefaultAsync();
@ -78,9 +84,7 @@ namespace pwt_0x01_ng.Areas.Admin.Controllers
}
}
}
if(similar != null){
item.Similar = similar;
}
item.Similar = similar;
ViewData["ImageSrc"] = new SelectList(dbctx.Product, "ImageSrc", item.ImageSrc);
return View(item);
}
@ -109,18 +113,28 @@ namespace pwt_0x01_ng.Areas.Admin.Controllers
item.ImageSrc = product.ImageSrc;
}
IList<Product> p = product.Similar;
if(p != null){
foreach (var prod in p)
{
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);
if (product.Similar != null) {
IList<SimilarProduct> similar = new List<SimilarProduct>();
foreach (var prod in product.Similar) {
SimilarProduct sp = new SimilarProduct();
sp.id = prod.id;
sp.Selected = prod.Selected;
similar.Add(sp);
}
if(similar.Count > 0){
foreach (var prod in similar)
{
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();
if (s != null) {
dbctx.Similar.Remove(s);
}
}
}
}
}

View File

@ -1,9 +1,10 @@
@using pwt_0x01_ng.Areas.Admin.Controllers;
@model Product
@{
IList<Product> similar,products;
similar = new List<Product>();
IList<Product> products;
IList<SimilarProduct> similar;
products = (IList<Product>)ViewData["prods"];
similar = new List<SimilarProduct>();
if((!String.IsNullOrEmpty(ViewBag.Action))||(!String.IsNullOrWhiteSpace(ViewBag.Action)))
{
<div class="row">

View File

@ -24,7 +24,7 @@ namespace pwt_0x01_ng.Models
[StringLength(50, ErrorMessage = "{0} length must be between {2} and {1}.", MinimumLength = 1)]
public string ImageAlt { get; set; }
[NotMapped]
public IList<Product> Similar { get; set; }
public IList<SimilarProduct> Similar { get; set; }
[NotMapped]
public bool Selected { get; set; }
}

View File

@ -4,12 +4,15 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace pwt_0x01_ng.Models
{
[Table(nameof(Similar))]
public class Similar : Entity
public class Similar
{
[Required]
[Key]
public int id { get; set; }
[Required]
public int prod_id { get; set; }
[ForeignKey(nameof(Product))]
[Required]
public int similar_prod_id { get; set; }
}
}
}

View File

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace pwt_0x01_ng.Models
{
public class SimilarViewModel
{
public IList<Similar> Similar { get; set; }
}
}