Esempio n. 1
0
        public async Task <JsonResult> Edit(ProductCategoryIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            try
            {
                if (vm.Id > 0)
                {
                    var editCase = await _db.ProductCategories.FindAsync(vm.Id);

                    editCase             = _mapper.Map(vm, editCase);
                    editCase.UpdatedDate = DateTime.Now;
                    editCase.UpdatedBy   = Site.CurrentUserName;

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


                    await SetPageMetaAsync(_db, (short)ModelType.CATEGORY, editCase.Id.ToString(), editCase.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription);



                    AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Category));
                    return(Json(AR, JsonRequestBehavior.DenyGet));
                }
                else
                {
                    var newCase = _mapper.Map <ProductCategoryIM, ProductCategory>(vm);
                    newCase.CreatedDate = DateTime.Now;
                    newCase.CreatedBy   = Site.CurrentUserName;

                    newCase = _db.ProductCategories.Add(newCase);
                    var result = await _db.SaveChangesAsync();

                    if (result > 0)
                    {
                        await SetPageMetaAsync(_db, (short)ModelType.CATEGORY, newCase.Id.ToString(), newCase.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription);
                    }

                    AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Category));
                    return(Json(AR, JsonRequestBehavior.DenyGet));
                }
            }
            catch (Exception er)
            {
                AR.Setfailure(er.Message);
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
        }
Esempio n. 2
0
        public async Task <ActionResult> Edit(int?id)
        {
            GetParentCategories(null);
            if (id > 0)
            {
                var vCase = await _db.ProductCategories.FindAsync(id);

                if (vCase == null)
                {
                    AR.Setfailure(Messages.HttpNotFound);
                    return(Json(AR, JsonRequestBehavior.AllowGet));
                }

                var editCase = _mapper.Map <ProductCategory, ProductCategoryIM>(vCase);

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

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

                return(View(editCase));
            }
            else
            {
                var vm = new ProductCategoryIM
                {
                    Active     = true,
                    Importance = 0
                };
                return(View(vm));
            }
        }
Esempio n. 3
0
        // GET: Admin/ProductCategories/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            var vm = new ProductCategoryIM
            {
                Active     = true,
                Importance = 0
            };

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

            var catelist = new List <ProductCategoryBVM>();


            var videos = await _context.Videos.AsNoTracking()
                         .OrderByDescending(d => d.Importance).ThenByDescending(d => d.Id).ToListAsync();

            ViewData["Videos"] = new SelectList(videos, "Id", "Title");

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

                return(View(vm));
            }
            else
            {
                var category = await _context.ProductCategories.FindAsync(id);

                if (category == null)
                {
                    return(NotFound());
                }
                var model = _mapper.Map <ProductCategoryIM>(category);

                var pm = await _context.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == (short)ModuleType.CATEGORY && d.ObjectId == category.Alias);

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


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

                return(View(model));
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> Edit([Bind("Id,Title,ParentId,Alias,Description,Importance,Active,VideoId,SEOTitle,SEOKeywords,SEODescription")] ProductCategoryIM im, int id = 0)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR));
            }

            if (id == 0)
            {
                var model = _mapper.Map <ProductCategory>(im);
                model.CreatedBy   = User.Identity.Name;
                model.CreatedDate = DateTime.Now;
                _context.Add(model);

                await _context.SaveChangesAsync();

                // return RedirectToAction(nameof(Index));

                AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.ProductCategory));
                return(Json(AR));
            }

            if (id != im.Id)
            {
                AR.Setfailure("未发现此分类");
                return(Json(AR));
            }


            try
            {
                var model = await _context.ProductCategories.FindAsync(id);

                model = _mapper.Map(im, model);

                model.UpdatedBy   = User.Identity.Name;
                model.UpdatedDate = DateTime.Now;
                _context.Update(model);
                await _context.SaveChangesAsync();

                var pm = new PageMeta
                {
                    Title       = im.SEOTitle,
                    Description = im.SEODescription,
                    Keywords    = im.SEOKeywords,
                    ModuleType  = (short)ModuleType.ARTICLECATEGORY,
                    ObjectId    = im.Alias
                };

                await CreatedUpdatedPageMetaAsync(_context, pm);

                AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.ProductCategory));
                return(Json(AR));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductCategoryExists(im.Id))
                {
                    AR.Setfailure("未发现此分类");
                    return(Json(AR));
                }
                else
                {
                    AR.Setfailure(string.Format(Messages.AlertUpdateFailure, EntityNames.ProductCategory));
                    return(Json(AR));
                }
            }
        }