public void InsertManagerCatalogProduct(CatalogProductEditViewModel model) { var exported = Mapper.Map <Catalog_Products>(model); m_ContentContext.Catalog_Products.Add(exported); m_ContentContext.SaveChanges(); foreach (var propModel in model.Properties) { var propItem = Mapper.Map <Catalog_Products_Properties>(propModel); propItem.ProductId = exported.Id; m_ContentContext.Catalog_Products_Properties.Add(propItem); } foreach (var imgModel in model.Images) { var imgItem = Mapper.Map <Catalog_Product_Images>(imgModel); imgItem.ProductId = exported.Id; m_ContentContext.Catalog_Product_Images.Add(imgItem); } foreach (var relModel in model.Relations) { var relItem = Mapper.Map <Catalog_Products_Relations>(relModel); relItem.GroupId = Guid.NewGuid(); var thisItem = new Catalog_Products_Relations { GroupId = relItem.GroupId, ProductId = exported.Id }; m_ContentContext.Catalog_Products_Relations.Add(relItem); m_ContentContext.Catalog_Products_Relations.Add(thisItem); } m_ContentContext.SaveChanges(); }
//GET: Admin/CatalogManager/Create public ActionResult Create() { var brandList = m_catalogWorker.GetManagerCatalogBrandList(1); var brandSelectLists = brandList.Select(item => new SelectListItem { Text = item.Title, Value = item.Id.ToString() }).ToList(); brandSelectLists.Insert(0, new SelectListItem { Text = "-", Value = "" }); ViewBag.BrandId = brandSelectLists; var taxList = GetTaxWorkerInstance().GetManagerProductTaxList(1); ViewBag.TaxGroup = taxList.Select(item => new SelectListItem { Text = item.Title, Value = item.Id.ToString() }).ToList(); ViewBag.CategoryTree = m_catalogWorker.GetCategoryTree(); this.StatusList(1); var model = new CatalogProductEditViewModel { Status = 1, IsShipable = true, IsBuyable = true }; ViewBag.Relations = JsonConvert.SerializeObject(model.Relations); return(View(model)); }
public ActionResult Edit(CatalogProductEditViewModel model) { if (ModelState.IsValid) { try { m_catalogWorker.UpdateManagerCatalogProductEdit(model); return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("General", ex.Message); } } var brandList = m_catalogWorker.GetManagerCatalogBrandList(1); var brandSelectLists = brandList.Select(item => new SelectListItem { Text = item.Title, Value = item.Id.ToString(), Selected = item.Id == model.BrandId }).ToList(); brandSelectLists.Insert(0, new SelectListItem { Text = "-" }); ViewBag.BrandId = brandSelectLists; var taxList = GetTaxWorkerInstance().GetManagerProductTaxList(1); ViewBag.TaxGroup = taxList.Select(item => new SelectListItem { Text = item.Title, Value = item.Id.ToString(), Selected = item.Id == model.TaxGroup }).ToList(); ViewBag.CategoryTree = m_catalogWorker.GetCategoryTree(); ViewBag.PropList = Newtonsoft.Json.JsonConvert.SerializeObject(model.Properties); ViewBag.Relations = JsonConvert.SerializeObject(AutoMapper.Mapper.Map <List <Models.CatalogProductsRelationsEditViewModel>, List <Models.CatalogProductsRelationsJSONModel> >(model.Relations)); this.StatusList(model.Status); return(View(model)); }
public void UpdateManagerCatalogProductEdit(CatalogProductEditViewModel model) { var query = from p in m_ContentContext.Catalog_Products where p.Id == model.Id select p; var item = query.FirstOrDefault(); Mapper.Map(model, item); for (int i = item.Catalog_Products_Properties.Count - 1; i >= 0; i--) { if (!model.Properties.Any(a => a.Id == item.Catalog_Products_Properties.ToList()[i].Id)) { var itemProp = item.Catalog_Products_Properties.ToList()[i]; for (int k = itemProp.Catalog_Products_Properties_Lang.Count - 1; k >= 0; k--) { var langProp = itemProp.Catalog_Products_Properties_Lang.ToList()[k]; m_ContentContext.Catalog_Products_Properties_Lang.Remove(langProp); } m_ContentContext.Catalog_Products_Properties.Remove(itemProp); } else { var itemProp = item.Catalog_Products_Properties.ToList()[i]; var modelProp = model.Properties.FirstOrDefault(f => f.Id == itemProp.Id); Mapper.Map(modelProp, itemProp); } } foreach (var propModel in model.Properties) { if (!item.Catalog_Products_Properties.Any(f => f.Id == propModel.Id && propModel.Id != 0)) { var propItem = Mapper.Map <Catalog_Products_Properties>(propModel); propItem.ProductId = model.Id; m_ContentContext.Catalog_Products_Properties.Add(propItem); } } for (int i = item.Catalog_Product_Images.Count - 1; i >= 0; i--) { if (model.Images == null || !model.Images.Any(a => a.Id == item.Catalog_Product_Images.ToList()[i].Id)) { var itemImg = item.Catalog_Product_Images.ToList()[i]; m_ContentContext.Catalog_Product_Images.Remove(itemImg); } } foreach (var imgModel in model.Images ?? new List <CatalogProductImagesEditViewModel>()) { if (item.Catalog_Product_Images.Any(f => f.Id == imgModel.Id && imgModel.Id != 0)) { var imgItem = item.Catalog_Product_Images.FirstOrDefault(f => f.Id == imgModel.Id); Mapper.Map(imgModel, imgItem); } else { var imgItem = Mapper.Map <Catalog_Product_Images>(imgModel); imgItem.ProductId = model.Id; m_ContentContext.Catalog_Product_Images.Add(imgItem); } } var relids = item.Catalog_Products_Relations.Select(s => s.Id).ToArray(); m_ContentContext.Catalog_Products_Relations.RemoveRange(m_ContentContext.Catalog_Products_Relations.Where(w => relids.Contains(w.Id)).AsEnumerable()); foreach (var relModel in model.Relations) { var relItem = Mapper.Map <Catalog_Products_Relations>(relModel); relItem.GroupId = Guid.NewGuid(); var thisItem = new Catalog_Products_Relations { GroupId = relItem.GroupId, ProductId = item.Id }; m_ContentContext.Catalog_Products_Relations.Add(relItem); m_ContentContext.Catalog_Products_Relations.Add(thisItem); } m_ContentContext.SaveChanges(); }