Esempio n. 1
0
        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));
        }
Esempio n. 4
0
        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();
        }