public Product Create(ProductIM im)
        {
            var newProduct = new Product
            {
                ProductName = im.ProductName,
                ProductNo   = im.ProductNo,
                Thumbnail   = im.Thumbnail,
                Cover       = im.Cover,
                Recommend   = im.Recommend,
                Active      = im.Active,
                Body        = im.Body,
                Description = im.Summary,
                ImageUrl    = im.ImageUrl,
                Importance  = im.Importance
            };

            if (im.PostCategoryIds != null)
            {
                var lCategories = (from c in _unitOfWork.ProductCategoryRepository.GetAll()
                                   where im.PostCategoryIds.Contains(c.Id.ToString())
                                   select c).ToList();

                newProduct.Categories = lCategories;
            }


            return(_unitOfWork.ProductRepository.Insert(newProduct));
        }
        public bool Update(ProductIM im)
        {
            var editProduct = _unitOfWork.ProductRepository.GetById(im.Id);

            editProduct.ProductName = im.ProductName;
            editProduct.ProductNo   = im.ProductNo;
            editProduct.Thumbnail   = im.Thumbnail;
            editProduct.Cover       = im.Cover;
            editProduct.Recommend   = im.Recommend;
            editProduct.Active      = im.Active;
            editProduct.Body        = im.Body;
            editProduct.Description = im.Summary;
            editProduct.ImageUrl    = im.ImageUrl;

            editProduct.Importance = im.Importance;

            editProduct.Categories.Clear();
            if (im.PostCategoryIds != null)
            {
                var lCategories = (from c in _unitOfWork.ProductCategoryRepository.GetAll()
                                   where im.PostCategoryIds.Contains(c.Id.ToString())
                                   select c).ToList();

                editProduct.Categories = lCategories;
            }


            return(_unitOfWork.ProductRepository.Update(editProduct));
        }
Exemple #3
0
        public async Task <ActionResult> Edit(int?id)
        {
            var im = new ProductIM()
            {
                Importance = 0, Active = true
            };

            if (id != null)
            {
                var vProduct = await _db.Products.Include(d => d.ProductCategories).FirstOrDefaultAsync(d => d.Id == id);

                if (vProduct == null)
                {
                    return(HttpNotFound());
                }


                im = _mapper.Map <ProductIM>(vProduct);


                if (vProduct.ProductCategories.Any())
                {
                    im.PostCategoryIds = vProduct.ProductCategories.Select(c => c.Id.ToString()).ToArray();
                }

                var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.PRODUCT && d.ObjectId == im.Id.ToString());

                if (pageMeta != null)
                {
                    im.Title          = pageMeta.Title;
                    im.Keywords       = pageMeta.Keyword;
                    im.SEODescription = pageMeta.Description;
                }
            }



            //var categoryList = _categoryRepository.GetActiveItems().OrderByDescending(c => c.Importance).ToList();
            //var lCategories = new SelectList(categoryList, "Id", "Title");
            //ViewBag.Categories = lCategories;

            var allCategory = _db.ProductCategories.OrderByDescending(c => c.Importance);
            var lCategories = allCategory.Where(d => d.ParentId > 0);

            foreach (var item in lCategories)
            {
                item.Parent = allCategory.FirstOrDefault(d => d.Id == item.ParentId);
            }
            //   var catselectList = categoryList.Select(d => new CategorySelectList { Id = d.Id, Title = d.Title, ParentTitle = d.ParentCategory.Title }).ToList();

            // 一级分类
            ViewBag.Categories = new SelectList(allCategory, "Id", "Title", 0);
            // 二级分类
            //ViewBag.Categories = new SelectList(lCategories, "Id", "Title", "ParentCategory.Title", 0);

            return(View(im));
        }
        // GET: Admin/Products/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            var vm = new ProductIM();

            if (id == null)
            {
                vm.Active = true;
            }
            else
            {
                var article = await _context.Products.FindAsync(id);

                if (article == null)
                {
                    return(NotFound());
                }

                vm = _mapper.Map <ProductIM>(article);

                var pm = await _context.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == (short)ModuleType.ARTICLE && d.ObjectId == vm.Id.ToString());

                if (pm != null)
                {
                    vm.SEOTitle       = pm.Title;
                    vm.SEOKeywords    = pm.Keywords;
                    vm.SEODescription = pm.Description;
                }
            }

            var categories = await _context.ProductCategories.OrderByDescending(d => d.Importance).ProjectTo <ProductCategoryBVM>(_mapper.ConfigurationProvider).ToListAsync();

            var catelist = new List <ProductCategoryBVM>();

            foreach (var item in categories.Where(d => d.ParentId == null))
            {
                LoadCategories(catelist, item, 0, categories);
            }
            ViewData["Categories"] = new SelectList(catelist, "Id", "Title");

            return(View(vm));
        }
        public async Task <IActionResult> Edit(ProductIM article)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR));
            }


            try
            {
                var pm = new PageMeta
                {
                    Title       = article.SEOTitle,
                    Description = article.SEODescription,
                    Keywords    = article.SEOKeywords,
                    ModuleType  = (short)ModuleType.ARTICLE
                };


                if (article.Id > 0)
                {
                    var model = await _context.Products.FirstOrDefaultAsync(d => d.Id == article.Id);

                    if (model == null)
                    {
                        AR.Setfailure(Messages.HttpNotFound);
                        return(Json(AR));
                    }
                    model = _mapper.Map(article, model);

                    model.UpdatedBy   = User.Identity.Name;
                    model.UpdatedDate = DateTime.Now;


                    _context.Entry(model).State = EntityState.Modified;
                    await _context.SaveChangesAsync();

                    AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.Product));
                    pm.ObjectId = model.Id.ToString();
                }
                else
                {
                    var model = _mapper.Map <Product>(article);

                    model.CreatedBy   = User.Identity.Name;
                    model.CreatedDate = DateTime.Now;


                    //model.Body = WebUtility.HtmlEncode(page.Body);

                    _context.Add(model);
                    await _context.SaveChangesAsync();

                    pm.ObjectId = model.Id.ToString();

                    AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.Product));
                }



                await CreatedUpdatedPageMetaAsync(_context, pm);

                return(Json(AR));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductExists(article.Id))
                {
                    AR.Setfailure(Messages.HttpNotFound);
                    return(Json(AR));
                }
                else
                {
                    throw;
                }
            }
        }
Exemple #6
0
        public async Task <JsonResult> Edit(ProductIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }


            try
            {
                if (vm.Id > 0)
                {
                    var product = await _db.Products.Include(d => d.ProductCategories).FirstOrDefaultAsync(d => d.Id == vm.Id);

                    product = _mapper.Map(vm, product);

                    product.ProductCategories.Clear();
                    if (vm.PostCategoryIds != null)
                    {
                        var lCategories = (from c in _db.ProductCategories
                                           where vm.PostCategoryIds.Contains(c.Id.ToString())
                                           select c).ToList();

                        product.ProductCategories = lCategories;
                    }

                    _db.Entry(product).State = EntityState.Modified;
                    await _db.SaveChangesAsync();

                    await SetPageMetaAsync(_db, (short)ModelType.PRODUCT, vm.Id.ToString(), vm.ProductName, vm.Title, vm.Keywords, vm.SEODescription);

                    AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product));
                }
                else
                {
                    var product = _mapper.Map <Product>(vm);

                    if (vm.PostCategoryIds != null)
                    {
                        var lCategories = (from c in _db.ProductCategories
                                           where vm.PostCategoryIds.Contains(c.Id.ToString())
                                           select c).ToList();

                        product.ProductCategories = lCategories;
                    }

                    _db.Products.Add(product);
                    await _db.SaveChangesAsync();

                    await SetPageMetaAsync(_db, (short)ModelType.PRODUCT, product.Id.ToString(), vm.ProductName, vm.Title, vm.Keywords, vm.SEODescription);

                    AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product));
                }
            }
            catch (Exception er)
            {
                AR.Setfailure(er.Message);
            }
            return(Json(AR, JsonRequestBehavior.DenyGet));
        }